PROGRAMACIÓN ORIENTADA A
OBJETOS (POO)
La
programación orientada a objetos (POO, también identificada como OOP, object
oriented programming), es un método de programación muy parecido a la forma en
que nosotros hacemos cosas. La POO es más estructurada que las tentativas
previas de la programación estructurada; y es más modular y abstracta que los
intentos previos en abstracción de datos y ocultamientos de detalles.
OBJETOS
Un objeto es una encapsulación genérica de
datos y de los procedimientos para manipularlos. Al igual que los objetos del mundo real, los
objetos de software tienen un estado y un comportamiento. El estado de los
objetos se determina a partir de una o más variables y el comportamiento con la
implementación de métodos.
Los objetos tienen características
fundamentales que nos permiten conocerlos mediante la observación,
identificación y el estudio posterior de su comportamiento; estas
características son:
Identidad.
La identidad es la
propiedad que permite a un objeto diferenciarse de otros. Generalmente esta
propiedad es tal, que da nombre al objeto. En programación la identidad de los
objetos sirve para comparar si dos objetos son iguales o no.
Comportamiento.
El comportamiento de un
objeto está directamente relacionado con su funcionalidad y determina las
operaciones que este puede realizar o a las que puede responder ante mensajes
enviados por otros objetos. La funcionalidad de un objeto está determinada,
primariamente, por su responsabilidad.
Estado.
El estado de un objeto se refiere
al conjunto de los valores de sus atributos en un instante de tiempo dado. El
comportamiento de un objeto puede modificar el estado de este. Cuando una
operación de un objeto modifica su estado se dice que esta tiene "efecto
colateral".
PRINCIPIOS O PROPIEDADES DE
LOS OBJETOS
a.
Principio de Abstracción
Mediante la abstracción la
mente humana modeliza la realidad en forma de objetos. Para ello busca
parecidos entre la realidad y la posible implementación de objetos del programa
que simulen el funcionamiento de los objetos reales.
Los seres humanos no pensamos
en las cosas como un conjunto de cosas menores; por ejemplo, no vemos un cuerpo
humano como un conjunto de células. Los humanos entendemos la realidad como
objetos con comportamientos bien definidos. No necesitamos conocer los detalles
de porqué ni cómo funcionan las cosas; simplemente solicitamos determinadas
acciones en espera de una respuesta; cuando una persona desea desplazarse, su
cuerpo le responde comenzando a caminar.
Pero la abstracción humana se
gestiona de una manera jerárquica, dividiendo sucesivamente sistemas complejos
en conjuntos de subsistemas, para así entender más fácilmente la realidad. Esta
es la forma de pensar que la orientación a objeto intenta cubrir.
b. Principio
de Encapsulamiento
El encapsulamiento permite a
los objetos elegir qué información es publicada y qué información es ocultada
al resto de los objetos. Para ello los objetos suelen presentar sus métodos
como interfaces públicas y sus atributos como datos privados e inaccesibles
desde otros objetos.
Para permitir que otros objetos
consulten o modifiquen los atributos de los objetos, las clases suelen
presentar métodos de acceso. De esta manera el acceso a los datos de los
objetos es controlado por el programador, evitando efectos laterales no
deseados.
Con el encapsulado de los datos
se consigue que las personas que utilicen un objeto sólo tengan que comprender
su interfaz, olvidándose de cómo está implementada, y en definitiva, reduciendo
la complejidad de utilización.
c. Principio
de Modularidad
Mediante la modularidad, se
propone al programador dividir su aplicación en varios módulos diferentes (ya
sea en forma de clases, paquetes o bibliotecas), cada uno de ellos con un
sentido propio.
Esta fragmentación disminuye el
grado de dificultad del problema al que da respuesta el programa, pues se
afronta el problema como un conjunto de problemas de menor dificultad, además
de facilitar la comprensión del programa.
d. Principio de Jerarquía
La mayoría de nosotros ve de
manera natural nuestro mundo como objetos que se relacionan entre sí de una
manera jerárquica. Por ejemplo, un perro es un mamífero, y los mamíferos son
animales, y los animales seres vivos...
Del mismo modo, las distintas
clases de un programa se organizan mediante la jerarquía. La representación de
dicha organización da lugar a los denominados árboles de herencia:
Mediante la herencia una clase
hija puede tomar determinadas propiedades de una clase padre. Así se
simplifican los diseños y se evita la duplicación de código al no tener que
volver a codificar métodos ya implementados.
Al acto de tomar propiedades de
una clase padre se denomina heredar.
e.
Principio del Paso de Mensajes
Mediante el denominado paso de
mensajes, un objeto puede solicitar de otro objeto que realice una acción
determinada o que modifique su estado. El paso de mensajes se suele implementar
como llamadas a los métodos de otros objetos.
Desde el punto de vista de la
programación estructurada, esto correspondería con la llamada a funciones.
f. Principio
de Polimorfismo
Polimorfismo quiere decir
"un objeto y muchas formas". Esta propiedad permite que un objeto
presente diferentes comportamientos en función del contexto en que se
encuentre. Por ejemplo un método puede presentar diferentes implementaciones en
función de los argumentos que recibe, recibir diferentes números de parámetros
para realizar una misma operación, y realizar diferentes acciones dependiendo
del nivel de abstracción en que sea llamado.
BIBLIOGRAFÍA
López, Leobardo (2006). Metodología de programación orientada a objetos. México: Alfaomega.
No hay comentarios:
Publicar un comentario