POO, Cursor Adapter Y Ext. VFP
POO, Cursor Adapter Y Ext. VFP
POO, Cursor Adapter Y Ext. VFP
Temas:
Presentado Por:
Carlos Saumeth
Programa:
Análisis Y Programación
Código:
117
Instructor:
Antonio Canchilla
Centro Inca
2008
Introducción a la programación orientada a objetos
En el transcurso de los últimos 35 años, los diseñadores de hardware para ordenadores han pasado
del diseño de equipos del tamaño de un hangar a ordenadores portátiles basados en
microprocesadores minúsculos.
En el mismo período, los desarrolladores de software han pasado de escribir programas en
ensamblador y COBOL a escribirlos en C y C++. Podríamos denominar a esto progreso (algunas
personas no estarían de acuerdo), pero claramente el mundo del software no progresa tan
rápidamente como el mundo del hardware. Entonces, ¿qué tienen los diseñadores de hardware que
los desarrolladores de software no poseen?
La respuesta está en los componentes utilizados. Si los ingenieros de hardware electrónico tuvieran
que comenzar desde un montón de arena cada vez que diseñan un nuevo dispositivo de hardware, y
el primer paso fuese la extracción de silicio para fabricar placas de circuitos integrados, el progreso
tampoco sería tan veloz. Sin embargo, un diseñador de hardware siempre construye un sistema que
se basa en componentes ya preparados, cada uno con una función específica y que brinda un
conjunto de servicios a través de interfaces definidas. La tarea de los diseñadores de hardware es
considerablemente más fácil gracias al trabajo de sus predecesores.
Que es
La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés) es un paradigma de
programación que usa objetos y sus interacciones para diseñar aplicaciones y programas de
computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo, y
encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos
los lenguajes de programación que soportan la orientación a objetos.
Historia
Al mismo tiempo que se da la Crisis del Software, por otro lado la Orientación a Objetos (OO) se
empezó
a discutir a fines de los años 60 con el desarrollo del lenguaje SIMULA67 por Nygaard y Ole-Johan Dahl
en el Centro de Cálculo Noruego, en él, introdujeron los conceptos de clase, subclases y rutinas, muy
Parecidos los conceptos a los lenguajes orientados a objetos de hoy en día. A mitad de la década de
los
70 los científicos del Centro de Investigaciones Palo Alto de XEROX (PARC) (XEROX Palo Alto Research
Center) crearon el lenguaje SMALLTALK, el primer lenguaje orientado a objetos consistente y
Completo. En él cada elemento del lenguaje fue realizado un objeto. Este último lenguaje evolucionó
através de varios lanzamientos realizados por PARC.
A pesar de este movimiento temprano hacia los lenguajes orientados a objetos, sólo se lograron
pequeñas
Incursiones en la comunidad de la programación general. El progreso reciente se ha acelerado debido
Principalmente a la disponibilidad de las extensiones orientadas a objetos para dos lenguajes
populares:
C y PASCAL, y a las extensiones prometidas para otros lenguajes comerciales populares como BASIC y
COBOL.
Terminologia
Objeto:
Consiste en ordenar datos en conjuntos modulares de elementos de información del mundo real
(denominado un dominio). Estos elementos de datos se llaman objetos. Estos datos se agrupan de
acuerdo a las características principales del mundo real de estos elementos (tamaño, color, etc.).
El enfoque de objetos es una idea que se ha probado con creces. Simula fue el primer lenguaje de
programación en implementar el concepto de clases en 1967. En 1976, Smalltalk implementó los
conceptos de encapsulación, agrupación y herencia (los conceptos principales de la programación
orientada a objetos). Por otra parte, se han implementado varios lenguajes de programación orientada
a objetos a escala global (Eiffel, Objective C, Loops, etc.).
• Atributos: estos son los datos que caracterizan al objeto. Son variables que almacenan datos
relacionados al estado de un objeto.
• Métodos (usualmente llamados funciones de miembro): Los métodos de un objeto caracterizan
su comportamiento, es decir, son todas las acciones (denominadas operaciones) que el objeto
puede realizar por sí mismo. Estas operaciones hacen posible que el objeto responda a las
solicitudes externas (o que actúe sobre otros objetos). Además, las operaciones están
estrechamente ligadas a los atributos, ya que sus acciones pueden depender de, o modificar, los
valores de un atributo.
• Identidad: El objeto tiene una identidad, que lo distingue de otros objetos, sin considerar su
estado. Por lo general, esta identidad se crea mediante un identificador que deriva naturalmente
de un problema (por ejemplo: un producto puede estar representado por un código, un automóvil,
por un número de modelo, etc.)
Clase:
Es la estructura de un objeto, es decir, la definición de todos los elementos de que está hecho un
objeto. Un objeto es, por lo tanto, el "resultado" de una clase. En realidad, un objeto es una instancia
de una clase, por lo que se pueden intercambiar los términos objeto o instancia (o incluso evento).
• Atributos (denominados, por lo general, datos miembros): esto es, los datos que se refieren al
estado del objeto
• Métodos (denominados, por lo general, funciones miembros): son funciones que pueden
aplicarse a objetos
Si tenemos una clase llamada auto, los objetos Peugeot y Renault serán instancias de esa clase.
También puede haber otros objetos Peugeot 406, diferenciados por su número de modelo. Asimismo,
dos instancias de una clase pueden tener los mismos atributos, pero considerarse objetos distintos
independientes. En un contexto real: dos camisas pueden ser idénticas, pero no obstante, también ser
diferentes de alguna manera. Sin embargo, si las mezclamos es imposible distinguir una de la otra.
Herencia:
Es específica de la programación orientada a objetos, donde una clase nueva se crea a partir de una
clase existente. La herencia (a la que habitualmente se denomina subclases) proviene del hecho de
que la subclase (la nueva clase creada) contiene las atributos y métodos de la clase primaria. La
principal ventaja de la herencia es la capacidad para definir atributos y métodos nuevos para la
subclase, que luego se aplican a los atributos y métodos heredados.
Esta particularidad permite crear una estructura jerárquica de clases cada vez más especializada. La
gran ventaja es que uno ya no debe comenzar desde cero cuando desea especializar una clase
existente. Como resultado, se pueden adquirir bibliotecas de clases que ofrecen una base que puede
especializarse a voluntad
Encapsulamiento:
Es un mecanismo que consiste en organizar datos y métodos de una estructura, conciliando el modo
en que el objeto se implementa, es decir, evitando el acceso a datos por cualquier otro medio distinto
a los especificados. Por lo tanto, la encapsulación garantiza la integridad de los datos que contiene un
objeto.
Polimorfismo:
proviene del griego y significa que posee varias formas diferentes. Este es uno de los conceptos
esenciales de una programación orientada a objetos. Así como la herencia está relacionada con las
clases y su jerarquía, el polimorfismo se relaciona con los métodos.
• Polimorfismo de sobrecarga
• Polimorfismo paramétrico (también llamado polimorfismo de plantillas)
• Polimorfismo de inclusión (también llamado redefinición o subtipado)
Método:
Algunos lenguajes de programación asumen que un método debe de mantener el invariante del
objeto al que está asociado asumiendo también que éste es válido cuando el método es invocado. En
lenguajes compilados dinámicamente, los métodos pueden ser objetos de primera clase, y en este
caso se puede compilar un método sin asociarse a ninguna clase en particular, y luego asociar el
vínculo o contrato entre el objeto y el método en tiempo de ejecución. En cambio en lenguajes no
compilados dinámicamente o tipados estáticamente, se acude a precondiciones para regular los
parámetros del método y postcondiciones para regular su salida (en caso de tenerla). Si alguna de las
precondiciones o postcondiciones es falsa el método genera una excepción. Si el estado del objeto no
satisface la invariante de su clase al comenzar o finalizar un método, se considera que el programa
tiene un error de programación.
Evento:
un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado
por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente.
También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la
acción que genera.
Propiedad o atributo:
contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos
visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo
valor puede ser alterado por la ejecución de algún método.
CursorAdapter
El CursorAdapter no es más que una nueva clase, pero muy importante, ya que con ella se puede
gestionar todo acceso a datos, tanto local como remoto, el cursorAdapter soporta diferentes orígenes
de datos, los cuales pueden ser aplicados dinámicamente y la compartición de dichos orígenes de
datos solamente se encontrará limitada por la propia tecnología.
Y todo esto interrelacionado; con que a partir de esta versión podemos crear clases partiendo del
contenedor DataEnvironment, se pueden crear verdaderos sistemas, con versatilidad, robustez y
potencia en lo que a la capa de acceso a datos se refiere.
Otra de las grandes ventajas que ofrece el CursorAdapter es que mantiene la interacción con los
comandos TableUpdate y TableRevert, esto es realmente muy bueno, ya que no perdemos la
generosidad y dimensión de dichos comandos, sobre todo cuando queremos dar robustez a la
integridad de nuestros datos e independientemente del origen de datos.
En este artículo se enumeran las extensiones y sus tipos de archivo asociado que se utilizan con
Visual FoxPro. En este artículo también se explica las estructuras de tabla de FoxPro versión 2.6 y
Visual FoxPro versión 3.0 de los siguientes archivos: archivos .dbc, FRx, .lbx, .mnx, .pjx, .SCx y .vcx.
Tabla estructuras de los archivos .dbc, FRx, .lbx, .mnx, .pjx, .SCx y .vcx
Las descripciones de las estructuras de tabla se almacenan en archivos que se encuentran en el
directorio FILESPEC. El directorio FILESPEC contiene dos proyectos: 30spec.pjx y 26spec.pjx:
• 30spec.pjx contiene tablas e informes que documentan Visual FoxPro archivos de la tabla versión
3.0.
• 26spec.pjx contiene tablas e informes que documentan archivos de la tabla 2.6 de versión Fox Pro.
Para ver las descripciones de estructura de tabla, imprimir el informe adecuado. En las siguientes dos
tablas se enumeran los tipos de archivo y sus informes asociados. Algunos tipos de archivos requieren
más de un informe porque hay demasiadas columnas para que quepa en una sola página.