martes, junio 20, 2006

 

Implementaciones I

Implementación en Visual BASIC.
Bueno después de tanta teoría creo que vendría bien algo de práctica.
Como ya mencioné en varias oportunidades, la tecnología de objetos abarca una gran variedad de aspectos. La estrategia que aborde en estos artículos es ir atendiendo a tales aspectos en forma paulatina a medida que se vayan haciendo necesarios. Los que saben dicen que esta técnica se llama aprendizaje significativo.
Entonces, debido a que es nuestra primera aproximación a alguna forma de implementación de clases y objetos, comenzaremos modestamente viendo clases y objetos en VisualBASIC.
La gente que "sabe" siempre dijo que VisualBASIC no esta hecho para trabajar con objetos pero, desgraciadamente me enteré de ello después de muchos años de trabajar con objetos en VisualBASIC, deberían haberme avisado antes.
No es un lenguaje orientado a objetos, eso es verdad, pero hasta el momento nunca tuve problemas para implementar, incluso, hasta algunos patrones de diseño bastantes complejos.
Una Clase.
Dada la interfaz amigable del lenguaje que nos ocupa, resulta sencillo crear una clase. Para ello debemos ir a la opción de menú Proyecto y en ella seleccionar Agregar módulo de clase.
Nos presentará en nuestra pantalla entonces un cuadro de diálogo con algunas opciones y de ellas nosotros eligiremos la primera, Módulo de clase.
Entonces se agregará una nueva carpeta en el explorar del proyecto identificada con la etiqueta Módulos de clase. En esta carpeta se iran incorporando las otras clases que contenga nuestro proyecto.
Primera cosa rara, solamente se muestra la ventana de código para una clase. Esto ocurre porque una clase no tiene interfaz gráfica como los formularios.
En la ventana de propiedades veremos tres propiedades, por ahora nos interesaremos solamente por la primera, el nombre. Siempre a las clases debemos ponerle un nombre que sea representativo del conjunto de objetos del cuál será la plantilla. Así, si la clase será la plantilla de un grupo de personas es lógico que la misma se llame Persona.
Ya está, tenemos una clase.
¿Qué hace?. Nada. Bueno paciencia vamos de a poco.
Los atributos de nuestra clase.
Hay dos formas de que una clase tenga atributos. Una fácil y una un poco más complicada.
Como siempre la solución fácil es la más limitada. Empezaremos con la fácil.
Supongamos que toda persona tendrá un apellido y un nombre, entonces en la ventana de código de la clase en la sección de declaraciones definiremos dos variables de la siguiente manera:
Public Apellido As String
Public Nombre As String
Listo, nuestra clase ya tiene dos atributos a los cuales podemos acceder desde afuera. ¿Porqué?. Todo lo que en una clase declaremos como público, ya sean variables, funciones o procedimientos, formarán parte de la interfaz de la misma.
¿Qué es una interfaz?.
Una interfaz exporta la funcionalidad de, en este caso, la clase o sea, define para qué puede usarse la clase desde afuera.
Todo lo que en la clase sea declarado como privado no habrá manera que sea accedido desde afuera de ella.
Instanciación de nuestra clase.
Recordemos que la clase es la plantilla de un conjunto de posibles objetos, un programa usará un objeto específico de determinada clase, Uff, se está complicando.
En el programa que usa objetos de la clase Persona debemos crear instancias de objetos Persona, para ello primero declaramos variables del tipo de clase que vamos a utilizar y después instanciamos el objeto.
En código quedaría algo así:
Dim objPers As Persona 'Crea al objeto
Set objPers = New Persona 'Instancia al objeto
Ahora sí ya podemos usar el objeto objPers, por ejemplo:
objPers.Apellido = "PEREZ"
Después de poner el nombre de la instancia del objeto y el operador punto, se despliegan automáticamente todos los miembros de la interfaz.
Bueno no hemos creado algo que figure en la historia de la informática pero es nuestro primer acercamiento práctico y creo que seguir avanzando, por ahora, solamente incrementará las horas en el Analista.
Obviamente queda mucho por ver pero eso es solamente un pretexto para seguirla.
Un abrazo.

Comments: Publicar un comentario



<< Home

This page is powered by Blogger. Isn't yours?