domingo, 19 de abril de 2009

Programación Orientada a Objetos en VFP

Visual FoxPro incluye la capacidad para trabajar con clases como parte de proporcionar las características de programación orientada a objeto. Cuando tu diseñas y creas una clase, estas construyendo un plantilla donde puedes crear objetos desde esa clase. Visual FoxPro incluye herramientas de diseño para crear y administrar clases.

Clases en Visual FoxPro

Las Clases definen propiedades, métodos y eventos los cuales son características y funcionalidades que los objetos poseen y que podemos usar para manipular objetos. Las clases pueden contener otros objetos o miembros de datos así como también variables. Por ejemplo, la clase del CommandButton tiene una propiedad Nombre, la cual define el nombre del botón de comando al contrario de la propiedad Caption, que define el texto que el botón de comando desplegará al usuario.
Los métodos de una clase definen y almacena códigos de procedimientos que se ejecutan cuando se llaman los métodos para un objeto de una clase. Por ejemplo, la clase CommandButton tiene un método Move, que mueve el botón de comando a una coordenada específica.
Los eventos de una clase definen código que se ejecuta cuando el sistema o los usuarios llevan a cabo acciones que disparan los eventos para un objeto de esa clase. Por ejemplo, la clase del CommandButton contiene un evento Clic, el cual es un procedimiento que podemos usar para definir el código que se ejecuta cuando el usuario hace clic en el botón de comando.
Las Clases pueden también contener a otros objetos, por ejemplo, la Clase de un Formulario puede contener un control de objeto, así como también un botón de comando. También se pueden especificar miembros de datos, al igual que variables como parte de una clase.

Los objetos tienen propiedades

Un objeto tiene ciertas propiedades o atributos. Los objetos que se crean en Visual FoxPro también tienen propiedades que están determinadas por la clase en la que se basa el objeto. Estas propiedades pueden establecerse en tiempo de diseño o en tiempo de ejecución.
Cada objeto reconoce y puede responder a determinadas acciones denominadas eventos. Un evento es una actividad específica y predeterminada, iniciada por el usuario o por el sistema. Los eventos, en la mayor parte de los casos, se generan por interacción del usuario. Por ejemplo, con un teléfono, se desencadena un evento cuando un usuario descuelga el receptor. Los eventos también se desencadenan cuando el usuario presiona los botones para efectuar una llamada.
En Visual FoxPro, las acciones del usuario que desencadenan eventos incluyen clics, movimientos del mouse y pulsaciones de teclas. Inicializar un objeto y encontrar una línea de código que produce un error son eventos iniciados por el sistema.
Los métodos son procedimientos asociados a un objeto. Los métodos se diferencian de los procedimientos normales de Visual FoxPro en que están vinculados inseparablemente a un objeto y tienen nombres distintos que los procedimientos normales de Visual FoxPro.
Los eventos pueden tener métodos asociados. Por ejemplo, si escribe código de método para el evento Click, ese código se ejecutará cuando se produzca el evento Click. Los métodos también pueden existir independientemente de los eventos. Se debe llamar a estos métodos de forma explícita en el código.
El conjunto de eventos es limitado, aunque amplio. No es posible crear nuevos eventos. Sin embargo, el conjunto de métodos puede ampliarse indefinidamente.

Beneficios de Usar una Clase

Las Clases proveen características que permiten crear código reutilizable y la posibilidad de mantenimiento y soporte del código:

Encapsulamiento: el cual incluye la propiedad de empaquetamiento y códigos de métodos dentro de los objetos, que permite ocultar la complejidad del código y ayuda a contribuir en la abstracción. Por ejemplo, cuando una persona usa una computadora, la persona usualmente no quiere saber como opera internamente, ni tampoco como procesa los datos o mantiene los archivos. La persona quiere es conseguir tareas que faciliten su trabajo cotidiano como el uso de una hoja de calculo, un documento, una base de datos o navegar en Internet, sin saber que procedimientos y códigos intervienen para ello. Igualmente, una clase ListBox, encapsula propiedades, métodos y eventos, que controlan la forma en como los ítems se despliegan dentro del cuadro de lista, determinando las acciones a emprender cuando seleccionan un ítem dentro del cuadro.

Creación de Subclases: Podemos crear una nueva clase o subclases a partir de cada una de clases de Visual FoxPro o de otras ya existentes fuera del entorno. Una Subclase puede incluir algunas o todas las funcionalidades de la clase original o padre, más cualquier otra característica adicional, como propiedades personalizadas o funcionalidades que tu quieras incluir a la nueva clase. Cuando tu modificas una clase padre, los cambios que tu crees se propagaran a todas las subclases que hereden desde la clase padre. Por ejemplo, Supóngase que tenemos una clase de botón de comando. Tu puedes crear una subclase a partir de la clase botón de comando, que contiene todas las propiedades estándar, métodos y eventos para un botón de comando, más las propiedades adicionales o funcionalidades que tu quieras incluir, así como también desplegar el botón con cierto color, tamaño y otras acciones personalizadas por el usuario.

Herencia: Con la herencia, si realiza un cambio en una clase, ese cambio se reflejará en todas las subclases que se basen en ella. Esta actualización automática ahorra tiempo y trabajo. Por ejemplo, si un fabricante de teléfonos quisiera cambiar los teléfonos de tipo marcación por aparatos de pulsación, se ahorraría mucho trabajo si pudiera hacer el cambio en el diagrama original y hacer que todos los teléfonos fabricados anteriormente con ese diagrama heredaran automáticamente la nueva característica, en lugar de tener que agregarla a todos los teléfonos existentes individualmente.

Clases de Contenedor y Clases de Control

Los dos tipos principales de clases de Visual FoxPro y por extensión, de objetos de Visual FoxPro, son las clases de contenedor y las clases de control.
Los contenedores pueden incluir otros objetos y permiten el acceso a los objetos que contienen. Por ejemplo, si crea una clase de contenedor que consta de dos cuadros de lista y dos botones de comando y, a continuación, agrega a un formulario un objeto basado en esta clase, cada objeto individual podrá manipularse en tiempo de ejecución y en tiempo de diseño. Puede cambiar fácilmente las posiciones de los cuadros de lista o los títulos de los botones de comando. También puede agregar objetos al control en tiempo de diseño; por ejemplo, puede agregar etiquetas para identificar los cuadros de lista.
Las clases de control están más encapsuladas que las clases de contenedor, pero por esa misma razón es posible que sean menos flexibles. Las clases de control no tienen un método Add Object.
La siguiente lista da ejemplos de objetos que pueden existir en clases de contenedor.


Column
Encabezados y cualquier objeto exepto formularios barras de herramientas, timers y otras columnas.

CommandGroup
Botones de Comando

Container
Cualquier control

Control
Cualquier control

Custom
Cualquier Control, entrono de datos, marco de página, contenedor, custom.

DataEnvironment
Cursores, relaciones y adaptadores de cursores.

FormSet
Formularios, barras de herramientas

Form
Marcos de Paginas, entono de datos, cualquier control, contenedor, custom.

Gris
Columnas

OptionGroup
Botones de Opcion

PageFrame
Paginas

Page
Cualquier Control

Project
Archivos, Servidores

Toolbar
Cualquier Control, Marco de Pagina, Contenedor

No hay comentarios:

Publicar un comentario