Diferencia entre agregación y composición

Diferencia entre agregación y composición

Diferencia clave: agregación vs composición
 

La programación orientada a objetos (OOP) es un paradigma común en el desarrollo de software. El objeto es una instancia de una clase. No es posible crear objetos a la vez. Debe haber un plan o una descripción para crear un objeto. Ese plan se conoce como clase. Una clase contiene propiedades y métodos. Los objetos se crean usando clases. La clase y el objeto son similares a un plan y una casa en el mundo real. No es posible construir una casa sin un plan adecuado. Del mismo modo, se usa una clase para crear un objeto. Un objeto colabora con otros objetos. Un enlace con representa la relación de dos o más objetos se llama como una "asociación". La agregación y la composición son tipos de asociaciones. Describen la relación entre las clases. Este artículo analiza la diferencia entre agregación y composición. El diferencia clave entre la agregación y la composición es que La agregación es una asociación entre dos objetos que describe la relación "tiene una" y la composición es un tipo de agregación más específico que implica propiedad.

CONTENIDO

1. Descripción general y diferencia de claves
2. ¿Qué es la agregación?
3. Que es la composición
4. Similitudes entre agregación y composición
5. Comparación de lado a lado - Composición de agregación vs en forma tabular
6. Resumen

¿Qué es la agregación??

Se muestra una relación entre dos objetos dibujando una línea en el lenguaje de modelado unificado (UML). El enlace es una asociación. UML ayuda a obtener una representación visual del sistema. Es diferente a los lenguajes de programación regulares. La asociación también define la multiplicidad de objetos. Son uno a uno, uno a muchos y muchos a muchos. Cuando un solo objeto de clase A está asociado con el objeto único de la clase B, esa es una relación uno a uno. Un ejemplo es un autor que escribe un libro. En ese ejemplo, un autor está escribiendo un libro.

Cuando un objeto de la clase A está asociado con muchos objetos de la clase B, es una relación de uno a muchos. Un ejemplo es que un departamento puede tener muchos empleados. Cuando el objeto de la clase A está asociado con muchos objetos de la clase B y un objeto de la Clase B está asociado con muchos objetos de la Clase A, es una asociación de muchos a muchos. Un ejemplo es que un empleado puede trabajar en múltiples proyectos y un proyecto puede tener múltiples empleados.

La agregación es una asociación de tipo que describe aún más la relación entre los objetos. La agregación describe "tiene una" relación. Algunos ejemplos que describen la relación son, un estudiante "tiene una" identificación de estudiante, un vehículo "tiene un" motor. También es posible expandir una gran cantidad con la relación. Algunos ejemplos son que un banco "tiene muchas" cuentas bancarias, una clase "tiene muchos" estudiantes. Se puede explicar utilizando el siguiente ejemplo.

Figura 01: agregación

Según el ejemplo anterior, el aula consta de un estudiante o muchos estudiantes. La multiplicidad también se usa para indicar el número de objetos. Describe que un salón de clases tiene varios estudiantes. El símbolo del diamante representa la agregación en UML. Los objetos de los estudiantes no confían en el objeto de clase. Si el objeto de clase se destruye, no afectará a los objetos del alumno. Esos objetos seguirán existiendo.

Que es la composición?

La composición es una forma de agregación más específica. Describe la propiedad. Se puede explicar utilizando el siguiente ejemplo.

Figura 02: Composición

Según lo anterior, el objeto del libro consta de objeto o páginas de página. La multiplicidad también se usa para indicar el número de objetos. Describe que un salón de clases tiene varios estudiantes. El símbolo del diamante que se resalta representa la composición en UML. Como el libro tiene una página o muchas páginas, es una agregación, pero se especifica más. Si el objeto del libro se destruye, entonces los objetos de la página también se destruyen. Los objetos de la página no pueden existir sin el objeto del libro. Por lo tanto, la composición es una forma más específica de una agregación que implica propiedad.

¿Cuáles son las similitudes entre la agregación y la composición??

  • Ambos se utilizan en programación orientada a objetos.
  • Ambos se utilizan en un lenguaje de modelado unificado (UML) para obtener una comprensión visual del sistema.

¿Cuál es la diferencia entre agregación y composición??

Agregación vs composición

La agregación es una asociación entre dos objetos que describe la relación "tiene una". La composición es el tipo de agregación más específico que implica propiedad.
 Símbolo uml
La agregación se denota por un diamante. La composición se denota por un diamante resaltado.
Funcionalidad
En agregación, si el objeto de propiedad destruido, no afectará el objeto que contiene. En composición, si el objeto de propiedad destruido, afectará el objeto que contiene.

Resumen - Agregación vs composición 

La programación orientada a objetos es un paradigma importante en el desarrollo de software. En OOP, el sistema se modela utilizando objetos. Estos objetos no existen de forma aislada. Los objetos colaboran con otros objetos. La relación entre los objetos se conoce como asociación. La agregación y la composición son tipos de asociación. La diferencia entre la agregación y la composición es que la agregación es una asociación entre dos objetos que describe la relación y la composición "tiene una" que es el tipo de agregación más específico que implica propiedad. La agregación y la composición ayudan a comprender el comportamiento del sistema.

Descargue la versión en PDF de la composición de la agregación vs

Puede descargar la versión PDF de este artículo y usarla para fines fuera de línea según la nota de cita. Descargue la versión PDF aquí Diferencia entre agregación y composición

Referencia:

1. Uso de agregación y composición, People Carrera, 22 de mayo de 2015. Disponible aquí