Ver Mensaje Individual
  #8 (permalink)  
Antiguo 30/09/2007, 11:41
Avatar de u_goldman
u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años
Puntos: 98
Re: Un módulo de usuarios

* Un vistazo breve al interior de una clase

Hay muchísimo de que hablar sobre este tema, no pretendo ni con mucho adentrarme y en realidad no se hasta que punto podría hacerlo eficientemente, así que solo repasaremos rápida y condensadamente los puntos básicos que debemos saber antes de aventurarnos a escribir nuestra clase usuario.

Técnicamente hablando, una clase es un conjunto de propiedaes, métodos y eventos* que interactúan entre sí que da como resultado un plano o blueprint de algún objeto, es decir, nosotros diseñamos las clases para que al instanciarlas se conviertan en objetos. Un objeto es una instancia de alguna clase, un objeto entonces tiene propiedades, métodos y eventos.

- Propiedad: La definición rápida y contundente es: Una cualidad de los objetos, una propiedad del objeto automóvil podría ser su color.
- Método: Acción que realiza el objeto, un automóvil, acelera.
- Eventos: Es algo que ocurre que dispara un método, pisar el acelerador ocasiona que el automóvil acelere.

Nuestra clase usuario tendrá para comenzar 3 propiedades, las cuales podemos encontrar en nuestra tabla tbl_usuario, aunque no siempre una propiedad refleja un campo en la base de datos.

A las propiedades se les puede asignar un valor, pero también podemos rescatar su valor, no siempre una propiedad puede ser establecida y rescatada, pero para efectos de nuestro ejercicio así será.

La sintáxis para referirnos a las propiedades de nuestros objetos en VBS es la siguiente:

Código:
'Asignar valor
Objeto.propiedad = valor

'Rescatar valor
valor = Objeto.propiedad
Ahora para efectos de nuestra clase, necesitamos dos miembros por cada propiedad, un miembro público y otro privado, un miembro público es aquél que es visto desde afuera del objeto, los dos ejemplos anteriores se refieren a un miembro público de nuestro objeto, por ende, necesitamos valernos de dos métodos, uno para asignar el valor, otro para devolverlo.

Código:
'Miembro privado que se llama id
private m_id

'Asigna el valor
public property let id(p_data)
  m_id = p_data
end property

'Devuelve el valor
public property get id()
    id = m_id
end property
La sintaxis para comenzar a diseñar una clase es la siguiente:
Código:
Class usuario
    .
    .
    .
End Class
La sintaxis para instanciar una clase o crear un objeto es la siguiente:
Código:
'Dimensionamos nuestra variable que se convertira en el objeto
Dim Objusuario

'Instanciamos nuestro objeto
Set Objusuario = new usuario
'ejecutamos las operaciones deseadas con nuestro objeto

'Es una buena costumbre destruir nuestros objetos
Set ObjUsuario = Nothing
Ok, ya estamos listos para comenzar a codificar nuestra clase

En el folder componentes, crea el archivo: usuario.asp y codifiquemos el siguiente código que nos permitirá poder acceder a los propiedades básicas de nuestra clase usuario -ya iremos agregando mas cosas-

Código:
<%
Class usuario
    private m_id
    private m_uname
    private m_pwd
    
    public property get id()
        id = m_id
    end property
    public property let id(p_data)
        m_id = p_data
    end property
    
    public property get uname()
        uname = m_uname
    end property
    public property let uname(p_data)
        m_uname = p_data
    end property
    
    public property get pwd
        pwd = m_pwd
    end property
    public property let pwd(p_data)
        m_pwd = p_data
    end property


End Class
%>

'Ok, ya podemos probar nuestra clase

<!--#include file = "componentes/usuario.asp"-->
<%
Dim ObjUsuario
Set ObjUsuario = new usuario

'Asignamos un valor
ObjUsuario.uname = "Este es mi nombre"

'Lo recuperamos
Response.Write(ObjUsuario.uname)

Set ObjUsuario = Nothing
%>
En la próxima ocasión comenzaremos a agregar un poco de lógica a nuestro formulario.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway