3.4 Relaciones entre Clases

Las clases, al igual que los objetos, no existen de modo aislado. La Orientación a Objetos (POO) intenta modelar aplicaciones del mundo real tan fielmente como sea posible y por lo tanto debe reflejar estas relaciones entre clases y objetos.

Según G. Booch [Booch, 94] existen tres clases básicas de relaciones entre los objetos:

  • Agregación / Composición
  • Asociación
  • Generalización / Especialización. HERENCIA
    • Herencia Simple.
    • Herencia Múltiple.

 

 

1.      Agregación / Composición (todo-parte//tiene-un // parte-de).

Esta relación se presenta entre una clase TODO y una clase PARTE que es componente de TODO. La implementación de este tipo de relación se consigue definiendo como atributo un objeto de la otra clase que es parte-de.

Los objetos de la clase TODO son objetos contenedores. Un objeto contenedor es aquel que contiene otros objetos.

En la agregación, las clases contienen objetos, y no otras clases.

Tipos de agregación

  • Por contenido físico o por valor

El contenedor contiene el objeto en sí. Cuando creamos un objeto contenedor, se crean también automáticamente los contenidos.

  • Agregación conceptual o por referencia

Se tienen punteros a objetos. No hay un acoplamiento fuerte. Los objetos se crean y se destruyen dinámicamente.

La relación de agregación/composición establece jerarquías de clases por grado de composición.

 

 

 

1.2. Asociación

Especifica una relación semántica entre objetos no relacionados. Este tipo de relaciones permiten crear asociaciones  que capturen los participantes en una relación semántica.

Es una relación entre clases. Implica una dependencia semántica. Son relaciones del tipo “pertenece_a” o “está_asociado_con”. Se da cuando una clase usa a otra clase para realizar algo.