El documento describe los principios básicos de la programación orientada a objetos, incluyendo las clases, métodos, constructores, destructores, herencia, objetos, abstracción, cohesión, encapsulamiento, clases abstractas, interfaces, polimorfismo, acoplamiento y asociación.
3. Clases
Hay principios de diseño que ayudan en el diseño de las clases y la
estructura del programa:
• „Diseño dirigido por responsabilidades
• „Acoplamiento y cohesión
• „Refactorización
4. Métodos
Es un algoritmo
asociado a un objeto
o clase cuya
ejecución se
desencadena tras la
recepción de un
mensaje. Es lo que
el objeto puede
hacer
5. Constructores y Destructores
Son
métodos
que
permiten establecer el estado
inicial y final de un objeto. Los
constructores
se
pueden
definir con un conjunto de
argumentos arbitrario, pero no
pueden devolver nada. Y los
destructores no pueden recibir
ni devolver ningún valor.
• El constructor debe llamarse
igual que la clase, y el
destructor el nombre de la
clase precedido del carácter.
En ObjGraf.h:
class TObjGraf { ...
// Constructor de objetos TObjGraf
TObjGraf
(TPaintBox *_PaintBox,
Tcolor_Color=clBlack,
int _X=0, int _Y=0);
// El destructor sería: ~TObjGraf (void); };
6. Constructores
los constructores:
• Se llaman igual que la clase.
• Solamente pueden tener modificador de acceso.
• Podemos poner la lista de argumentos que mejor
obedezca a nuestras necesidades.
7. Herencia
donde una clase nueva se crea a partir de una clase
existente. 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.
8. Objeto
• Es una unidad dentro de un
programa de computadora que
consta de un estado y de un
comportamiento, que a su vez
constan respectivamente de datos
almacenados y de tareas
realizables durante el tiempo de
ejecución.
• Un objeto puede ser creado
instanciando una clase, como
ocurre en la programación
orientada a objetos, o mediante
escritura directa de código y la
replicación otros objetos, como
ocurre en la programación basada
en prototipos.
9. Abstracción
La abstracción consiste en
aislar un elemento de su contexto o
del resto de los elementos que lo
acompañan. En programación, el
término se refiere al énfasis en el
"¿qué hace?" más que en el "¿cómo
lo hace?" (característica de caja
negra). El común denominador en la
evolución de los lenguajes de
programación, desde los clásicos
o imperativos hasta los orientados a
objetos, ha sido el nivel de
abstracción del que cada uno de
ellos hace uso.
10. Cohesión
La cohesión tiene que ver
con que cada módulo del sistema se
refiera a un único proceso o entidad.
A mayor cohesión, mejor: el módulo
en cuestión será más sencillo de
diseñar, programar, probar y
mantener.
En el diseño estructurado, se logra alta cohesión cuando
cada módulo (función o procedimiento) realiza una única tarea
trabajando sobre una sola estructura de datos.
11. Encapsulamiento
• se denomina
encapsulamiento al
ocultamiento del
estado, es decir, de los
datos miembro de un
objeto de manera que
sólo se pueda cambiar
mediante las
operaciones definidas
para ese objeto.
12. Clases Abstractas
Este Tipo de Clases nos permiten crear
“método generales”, que recrean un
comportamiento
común,
pero
sin
especificar cómo lo hacen. A nivel
de código tienen por particularidad que
algunos de sus métodos no tienen “cuerpo
de declaración”, ¿qué quiere decir esto? no
tienen las llaves { } ni código dentro de ellos
y deben estar precedidos por la palabra
clave abstract. Si una clases contiene uno o
más métodos abstractos está clase debe ser
abstracta.
Estas clases como son generalidades no
pueden ser instanciadas por ningún objeto
(se dice que su nivel de abstracción es
demasiado alto), entonces su único fin es
ser heredado/extendido por otras clases.
13. Interfaces
Las interfaces, tal como las clases abstractas. no
se pueden instanciar. Sus métodos deben ser reescritos por la clase que implemente.
14. Polimorfismo
Es la capacidad que tienen
los objetos de una clase
de responder al mismo
mensaje o evento en
función de los parámetros
utilizados durante su
invocación. Un objeto
polimórfico es una entidad
que
puede
contener
valores de diferentes tipos
durante la ejecución del
programa.
15. Acoplamiento
El acoplamiento mide el grado de
relacionamiento de un módulo con los
demás. A menor acoplamiento, mejor:
el módulo en cuestión será más
sencillo de diseñar, programar, probar
y
mantener.
En el diseño estructurado, se logra
bajo acoplamiento reduciendo las
interacciones entre procedimientos y
funciones, reduciendo la cantidad y
complejidad de los parámetros y
disminuyendo
al
mínimo
los
parámetros por referencia y los
efectos colaterales.
16. Asociación
La asociación se podría definir como el momento en que dos objetos se unen para
trabajar juntos y así, alcanzar una meta.
Un punto a tomar muy en cuenta es que ambos objetos son independientes entre
sí, veremos un poco más adelante qué implicación tiene esto. Para validar la
asociación, la frase “Usa un”, debe tener sentido:
El ingeniero usa una computadora
El cliente usa tarjeta de crédito.