Diferencia clave: agregación frente a 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 plano o una descripción para crear un objeto. Ese plano 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 plano y una casa en el mundo real. No es posible construir una casa sin un plan adecuado. Asimismo, una clase se usa para crear un objeto. Un objeto colabora con otros objetos. Un enlace con representa la relación de dos o más objetos se denomina "asociación". La agregación y la composición son tipos de asociaciones. Describen la relación entre clases. Este artículo analiza la diferencia entre agregación y composición. La diferencia clave entre agregación y 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 más específico de agregación que implica propiedad.
CONTENIDO
1. Descripción general y diferencia clave
2. Qué es la agregación
3. Qué es la composición
4. Similitudes entre la agregación y la composición
5. Comparación lado a lado: agregación versus composición en forma tabular
6. Resumen
¿Qué es la agregación?
La relación entre dos objetos se muestra 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 normales. 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 la clase A se asocia con el único objeto de la clase B, se trata de 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, un empleado puede trabajar en varios proyectos y un proyecto puede tener varios empleados.
La agregación es una asociación de tipos que describe con más detalle la relación entre 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 ampliar una gran cantidad con la relación. Algunos ejemplos son, un banco "tiene muchas" cuentas bancarias, una clase "tiene muchos" estudiantes. Puede explicarse utilizando el siguiente ejemplo.
Figura 01: Agregación
Según el ejemplo anterior, el aula consta de un alumno o de muchos alumnos. La multiplicidad también se usa para indicar el número de objetos. Describe que un aula tiene varios estudiantes. El símbolo del diamante representa la agregación en UML. Los objetos de estudiante no se basan en el objeto de clase. Si el objeto de la clase se destruye, no afectará a los objetos del alumno. Esos objetos seguirán existiendo.
¿Qué es la composición?
La composición es una forma de agregación más específica. Describe la propiedad. Puede explicarse utilizando el siguiente ejemplo.
Figura 02: Composición
De acuerdo con lo anterior, el objeto de libro consiste en un objeto de página o páginas. La multiplicidad también se usa para indicar el número de objetos. Describe que un aula tiene varios estudiantes. El símbolo de diamante que está resaltado representa la composición en UML. Como el libro tiene una página o muchas páginas, es una agregación, pero está más especificado. Si el objeto del libro se destruye, los objetos de la página también se destruyen. Los objetos de página no pueden existir sin el objeto de libro. Por tanto, la composición es una forma más específica de agregación que implica propiedad.
¿Cuáles son las similitudes entre agregación y composición?
- Ambos se utilizan en programación orientada a objetos.
- Ambos se utilizan en el lenguaje de modelado unificado (UML) para obtener una comprensión visual del sistema.
¿Cuál es la diferencia entre agregación y composición?
Diferencia del medio del artículo antes de la mesa
Agregación vs Composición |
|
La agregación es una asociación entre dos objetos que describe la relación "tiene un". | La composición es el tipo de agregación más específico que implica propiedad. |
Símbolo UML | |
La agregación se denota con un diamante. | La composición se indica con un diamante resaltado. |
Funcionalidad | |
En agregación, si el objeto propietario se destruye, no afectará al objeto contenedor. | En composición, si el objeto propietario se destruye, afectará al objeto contenedor. |
Resumen: agregación frente a composición
La programación orientada a objetos es un paradigma importante en el desarrollo de software. En OOP, el sistema se modela mediante objetos. Estos objetos no existen de forma aislada. Los objetos colaboran con otros objetos. La relación entre objetos se conoce como asociación. La agregación y la composición son tipos de asociación. La diferencia entre agregación y 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 el tipo más específico de agregación que implica propiedad. Tanto la agregación como la composición ayudan a comprender el comportamiento del sistema.
Descargue la versión PDF de Agregación vs Composición
Puede descargar la versión PDF de este artículo y utilizarla para fines sin conexión según la nota de cita. Descargue la versión PDF aquí Diferencia entre agregación y composición