Metodología Orientada a objetos
No solo nos referimos a la programación orientada a objetos si no que se la metodología incluye el Análisis Orientado a Objetos, el Diseño Orientado a objetos y la Programación Orientada a objetos.
Programación Orientada a Objetos, un paradigma de programación que permite desarrollar aplicaciones complejas manteniendo un código más claro y manejable que otros paradigmas anteriores.
La programación Orientada a objetos se define como un paradigma de la programación, una manera de programar específica, donde se organiza el código en unidades denominadas clases, de las cuales se crean objetos que se relacionan entre sí para conseguir los objetivos de las aplicaciones.
La programación Orientada a objetos (POO) es una forma especial de programar, más cercana a como expresaríamos las cosas en la vida real que otros tipos de programación.
Para la implementacion de esta metodología vamos a requerir los siguiente mecanismos:
- Objetos: encapsulamiento de datos y métodos. Los objetos son ejemplares de una clase cualquiera. Cuando creamos un ejemplar tenemos que especificar la clase a partir de la cual se creará. Esta acción de crear un objeto a partir de una clase se llama instanciar (que viene de una mala traducción de la palabra instace que en inglés significa ejemplar).
- Clases: declaraciones de objetos, también se podrían definir como abstracciones de objetos. Esto quiere decir que la definición de un objeto es la clase. Cuando programamos un objeto y definimos sus características y funcionalidades en realidad lo que estamos haciendo es programar una clase.
- Mensajes: comunicación (colaboración) entre objetos. Un mensaje en un objeto es la acción de efectuar una llamada a un método.
- Métodos: funcionalidades asociadas a los objetos. Cuando estamos programando las clases las llamamos métodos. Los métodos son como funciones que están asociadas a un objeto.
Los Objetos están compuestos principalmente por:
- Identidad: dato que lo hace único al objeto.
- Estado: propiedades y atributos, datos y valores del objeto en un momento dado.
- Comportamiento: métodos y funciones de objetos (que es lo que hace el objeto).
Visibilidad de atributos y métodos (public, protected y private).
En una clase podemos definir nuestros atributos y métodos como públicos, protegidos o privados (public, protected o private) en función de la visibilidad que queremos que tengan en el resto del código.
Diferencias entre public, protected y private:
Public: podemos acceder a las propiedades y métodos desde cualquier lugar, desde la clase actual, clases que heredan de la clase actual y desde otras clases.
Protected: se puede acceder al atributo o método desde la clase que lo define y desde cualquier otra que herede de esta clase.
Private: los atributos o métodos solo son accesibles desde la clase que los define.
Características de la POO
La abstracción es la generaliacion de los objetos que como resultado nos define las clases. 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?"
La encapsulación 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.
La implementacion del encapsulamiento se realiza declarando los datos de la clase como privados para que no se pueda acceder a ellos y los métodos de retorno de información y de trabajo como públicos.
La herencia sirve para crear objetos que incorporen propiedades y métodos de otros objetos. Así podremos construir unos objetos a partir de otros sin tener que reescribirlo todo. Responde a la pregunta "es un ...".
Siempre voy a tener una estructura jerárquica donde voy a tener una clase padre/base y una o mas clases derivadas.
El polimorfismo sirve para que no tengamos que preocuparnos sobre lo que estamos trabajando, y abstraernos para definir un código que sea compatible con objetos de varios tipos.
El polimorfismo puede ser estático o dinámico.
Se denomina "modularidad" a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantes partes. Estos módulos se pueden compilar por separado, pero tienen conexiones con otros módulos.
Principio de ocultación. Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una "interfaz" a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas; solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no puedan cambiar el estado interno de un objeto de manera inesperada, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.
Interacción entre objetos (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.
Agregación
La agregación es un tipo de asociación que indica que una clase es parte de otra clase. Los componentes pueden ser compartidos por varios compuestos (de la misma asociación de agregación o de varias asociaciones de agregación distintas). Un punto a tomar muy en cuenta es que ambos objetos son independientes entre sí, la destrucción del compuesto no conlleva la destrucción de los componentes.
Para validar la asociación, la frase “Usa un”, debe tener sentido:
Composición
Composición es una forma fuerte de composición donde la vida de la clase contenida debe coincidir con la vida de la clase contenedor. Los componentes constituyen una parte del objeto compuesto. De esta forma, los componentes no pueden ser compartidos por varios objetos compuestos. La supresión del objeto compuesto conlleva la supresión de los componentes.
En esta situación, la frase “Tiene un”, debe tener sentido:
Interacción entre objetos (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.
Agregación
La agregación es un tipo de asociación que indica que una clase es parte de otra clase. Los componentes pueden ser compartidos por varios compuestos (de la misma asociación de agregación o de varias asociaciones de agregación distintas). Un punto a tomar muy en cuenta es que ambos objetos son independientes entre sí, la destrucción del compuesto no conlleva la destrucción de los componentes.
Para validar la asociación, la frase “Usa un”, debe tener sentido:
- El ingeniero usa una computadora
- El cliente usa tarjeta de crédito.
En la agregación se crea el objeto antes de agregarlo (este ya debe existir).
Composición
Composición es una forma fuerte de composición donde la vida de la clase contenida debe coincidir con la vida de la clase contenedor. Los componentes constituyen una parte del objeto compuesto. De esta forma, los componentes no pueden ser compartidos por varios objetos compuestos. La supresión del objeto compuesto conlleva la supresión de los componentes.
En esta situación, la frase “Tiene un”, debe tener sentido:
- El auto tiene llantas
- La portátil tiene un teclado.
La creación del objeto se realiza en el objeto principal.




No hay comentarios.:
Publicar un comentario