Programación orientada a objetos
Introducción
La programación orientada a objetos (OOP) es un paradigma basado en el concepto de envolver trozos de datos y el comportamiento relacionado con esos datos en unos envoltorios especiales llamados objetos, que se construyen según un conjunto de "planos" llamados clases.
Pilares de la OOP
La programación orientada a objetos se basa en cuatro pilares:
-
Abstracción
modelo de un objeto o fenómeno del mundo real, representando todos los detallas relevantes al contexto y omitiendo el resto. -
Polimorfismo
habilidad de un programa de detectar la verdadera clase de un objeto y llamar a su implementación, incluso cuando su tipo verdadero sea desconocido en el contexto actual. -
Encapsulación
habilidad de un objeto de esconder partes de su estado y comportamiento a otros objetos, exponiendo solo un interfaz limitado. -
Herencia
habilidad de construir nuevas clases a partir de las existentes.classDiagram Animal <|-- Gato
Relaciones entre objetos
Aparte de la encapsulación y de la herencia se tienen las siguientes relaciones:
- Asociación: es un tipo de relación en la que un objeto usa o interactúa con otro.
classDiagram
Profesor --> Estudiante
- Dependencia: es una variante más débil de la asociciación, habitualmente indica que no hay un enlace permanente entre objetos.
classDiagram
Profesor ..> Salario
- Composición: es una relación "todo-parte" entre dos objetos, en la que uno está compuesto de una o más instancias del otro. El componente solo puede existir como parte del contenedor.
classDiagram
Universidad *-- Departamento
- Agregación: es una variante menos estricta de la composición, donde un objeto simplemente contiene una referencia a otro. El componente puede existir sin el contenedor y puede estar enlazado con varios contenedores a la vez.
classDiagram
Departamento o-- Profesor
Referencias
- Dive into Design Patterns, Alexander Shvets