Saltar al contenido

Agregación vs Composición vs Asociación vs Asociación Directa

Ya no tienes que investigar más en internet porque llegaste al lugar necesario, poseemos la solución que necesitas pero sin liarte.

Solución:

Tenga en cuenta que existen diferentes interpretaciones de las definiciones de “asociación”. Mis puntos de vista a continuación se basan en gran medida en lo que leería en los libros y guías de estudio de Oracle Certification.

Asociación temporal

un uso dentro de un método, su firma o como valor de retorno. No es realmente una referencia a un objeto específico.

Ejemplo: Aparco mi coche en un garaje.

Asociación Temporal UML

Asociación de composición

Un llamado “Relación fuerte“: La creación de instancias del objeto vinculado a menudo está codificada dentro del constructor del objeto. No se puede establecer desde fuera del objeto. (Composición no poder ser una relación de muchos a muchos).

Ejemplo: Una Casa está compuesta de Piedras.

Composición UML

Asociación directa

Esto es un “relaciones DÉBILES“. Los objetos pueden vivir independientes y generalmente hay setters u otras formas de inyectar los objetos dependientes.

Ejemplo: Un Coche puede tener Pasajeros.

UML de asociación directa

Asociación de agregación

Muy similar a una asociación Directa. también es un “relación DÉBIL” con objetos independientes. Sin embargo, aquí los objetos asociados son una parte crucial del objeto contenedor.

Ejemplo: un automóvil debe tener llantas.

UML de agregación

Nota: tanto las asociaciones directas como las asociaciones de agregación a menudo se generalizan como “asociaciones”. La diferencia es bastante sutil.

El objetivo de OOP es que su código replique objetos del mundo real, haciendo que su código sea legible y mantenible.

1. Asociación

La asociación es: la clase A usa la clase B.

Ejemplo:

  • El empleado utiliza los servicios de autobús/tren para el transporte.
  • La computadora usa el teclado como dispositivo de entrada

Y en el diagrama de UML, la asociación se denota con una punta de flecha normal.

2. Agregación

La clase A contiene la clase B, o la clase A tiene una instancia de la clase B.

Se utiliza una agregación cuando la vida del objeto es independiente del objeto contenedor. Pero aún el objeto contenedor posee el objeto agregado.

Entonces, si eliminamos la clase A, eso no significa que la clase B también se eliminará. Por ejemplo, ninguno o muchos profesores pueden pertenecer a uno o varios departamentos.

La relación entre Profesores y Departamentos es de agregación.

3. Composición

La clase A posee la clase B.

Por ejemplo, el cuerpo consta de brazo, cabeza y piernas. BankAccount consta de Balance y TransactionHistory.

Entonces, si se elimina la clase A, también se eliminará la clase B.

La asociación directa no tiene nada en común con las otras tres. No pertenece en absoluto a UML, es el término de modelado de requisitos de IBM.

En cuanto a los demás,

La Asociación A->B es un hijo de la Dependencia. Asociación significa que A (o su instancia) tiene alguna manera fácil de llegar a la instancia de B. Por ejemplo, axyb O por función, o por alguna variable local. O por una referencia directa o puntero, o cualquier otra cosa (hay muchos idiomas en el mundo). Como ves, no existe una frontera estricta entre la dependencia y la asociación.

Uno de attributes de Asociación es Agregación, puede tener valores: Ninguno, compartido (a menudo incorrectamente llamado agregación) y composición.

Si A (o una instancia) tiene algunas (o una) instancias de B, entonces, la destrucción de la asociación significa la destrucción de las instancias de B, es la composición.

Si usted o el autor de una herramienta han decidido que alguna relación tiene una relación, que es más débil que la composición, debe mostrarse especialmente, puede usar shared agregación. Por lo general, se trata de algunas colecciones de referencias a B en A.

hay algunos mas interesantes attributes de asociaciones Mira aquí si estás interesado.

Comentarios y puntuaciones

Ten en cuenta compartir este artículo si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *