Recomendado, 2024

La Elección Del Editor

Diferencia entre agregación y composición

La agregación y la composición son los tipos de asociación. La principal diferencia entre la agregación y la composición es que la agregación implica una relación en la que el hijo puede existir independientemente del padre. Por otro lado, la composición insinúa una relación donde el niño no puede existir independientemente del padre.

La programación orientada a objetos es un paradigma común que se utiliza en el desarrollo de software. El objeto es una instancia de una clase creada por clases. Los objetos colaboran entre sí a través de enlaces. Los enlaces son la conexión física y conceptual que existe entre los objetos. Una colección de enlaces que tienen una estructura y semántica similares se describe como una asociación .

Gráfica comparativa

Bases para la comparaciónAgregaciónComposición
BASICEn la agregación hay una relación en la que un hijo puede existir independientemente del padre.En composición el no puede existir independientemente del padre.
Tipo de relación"tiene un""parte de"
Tipo de asociaciónAsociación débilAsociación fuerte
Símbolo de diseño UMLRepresentado por un diamante hueco junto a la clase de montaje.Representado por un diamante sólido junto a la clase de montaje.
FunciónLa eliminación de montaje no afecta a sus partes.Si se elimina el objeto de la clase propietaria, podría afectar significativamente al objeto de la clase contenedora.

Definición de agregación

La agregación se puede definir como una relación con una clase de ensamblaje a la clase constituyente. La relación entre dos objetos se puede representar dibujando un segmento de línea en UML (Lenguaje de modelado unificado).

La agregación también se usa para especificar la multiplicidad de objetos, como uno a uno, uno a muchos y muchos a muchos. Cuando un objeto de la clase X se asocia con un solo objeto de la clase Y, en ese caso existe una relación de uno a uno. De manera similar, si un solo objeto de una clase está asociado con múltiples objetos de una clase, esta relación se denomina de uno a muchos.

Por ejemplo, un automóvil consta de ruedas, motor, caja de cambios, dirección, cuerpo principal, etc. Un automóvil es un conjunto, y las otras partes son sus componentes. Coche a ruedas es una agregación, coche a motores es otra agregación, y así sucesivamente. Cada emparejamiento individual se define para especificar la multiplicidad de cada parte constitutiva dentro del ensamblaje como un resultado, el número de objetos también se puede representar.

La agregación es un tipo de asociación que describe un tipo de relación "tiene un" entre los objetos. Por ejemplo, un automóvil "tiene una" caja de cambios, y un automóvil "tiene un" motor . Para la relación uno a muchos, un ejemplo es que un automóvil “tiene” muchas ruedas .

Definición de Composición

La composición es también un tipo de asociación pero una forma más restrictiva. Está representado en UML por un pequeño diamante sólido adyacente a la clase de ensamblaje.

En este tipo de asociación, la parte constitutiva puede vincularse como máximo a un ensamblaje. Además, cuando una parte constituyente colabora con el ensamblaje, tendrá una vida útil simultánea con el ensamblaje.

Así, la composición significa la propiedad de la parte constitutiva del todo. Esto aumentaría en última instancia la conveniencia para la programación. La composición puede activar la eliminación del objeto constituyente mediante la eliminación de un objeto de ensamblaje.

La composición describe una relación de "parte de" . Por ejemplo, una hoja es una parte de un árbol, si el árbol es destruido, entonces las hojas deben ser destruidas.

Diferencias clave entre agregación y composición

  1. La agregación indica una relación donde las entidades hijo y padre pueden existir de forma independiente. En contra de, en la composición, la entidad hijo es dependiente de la matriz.
  2. En la agregación, existe una relación "tiene una", mientras que en la composición hay una relación "parte de" entre el conjunto y los objetos de la clase constituyente.
  3. La agregación es una asociación débil, mientras que la composición es una asociación fuerte porque tiene más restricciones.
  4. En el diseño UML, la agregación se describe mediante un diamante hueco. En contraste, la composición está representada por un diamante sólido.

Conclusión

En agregación, las partes constituyentes tienen la existencia independiente y pueden ser compartidas o reasignadas a agregados o su ensamblaje. Por otro lado, en composición, la parte constitutiva pertenece exactamente a un conjunto o agregado. Además, la parte se crea cuando se forma el agregado, y la parte se destruye cuando se destruye el agregado.

Top