Paradigmas de la O.O.
Los paradigmas de la Orientación a Objetos son:
- Abstracción.
- Encapsulación.
- Ocultamiento.
- Herencia.
- Polimorfismo.
Cualquier lenguaje O.O. debe implementar estos conceptos.
Abstracción
- Consiste en la generalización conceptual de los atributos y comportamiento de un determinado conjunto de objetos.
- La clave de la programación O.O. está en abstraer los métodos y los datos comunes a un conjunto de objetos y almacenarlos en una clase.
- Hay que centrarse en lo que es y lo que hace un objeto, antes de decidir cómo debería ser implementado.
Encapsulación y ocultamiento
- Consiste en separar el aspecto externo del objeto, al cual pueden acceder otros objetos, del aspecto interno del mismo, que es inaccesible para los demás.
- Permite tratar a un objeto como una caja negra.
- Permite que se modifique la implementación interna de un objeto sin afectar a los clientes que lo utilizan.
Relaciones
Las clases no existen aisladas sino que tienen dependencias entre ellas.
Los distintos tipos de relaciones son:
- Asociación: representa la dependencia más general entre clases. Representa una dependencia semántica entre dos clases.
- Agregación: es una forma particular de asociación que expresa un acoplamiento más fuerte entre objetos.Indica que los objetos de una clase contienen o están formados por objetos de otras clases.
- Composición: se trata de una relación de agregación fuerte.
- Herencia: se basa en la existencia de relaciones de generalización/especialización entre clases. Las clases se disponen en una jerarquía, donde una clase hereda todos los atributos y operaciones de las clases superiores en la jerarquía.
- Relaciones dinámicas: mensaje. Un mensaje es un comando o petición que se le envía a otro objeto.Requiere el conocimiento previo del interfaz del objeto receptor.
Polimorfismo
- Permite implementar múltiples formas de un mismo método, dependiendo cada una de ellas de la clase sobre la que se realice la implementación.
- Esto posibilita desencadenar operaciones diferentes en respuesta a un mismo mensaje, en función del objeto que lo reciba.