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 es conocido como una clase. Una clase contiene propiedades y métodos. Los objetos se crean utilizando 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, una clase se utiliza para crear un objeto. Un objeto colabora con otros objetos. Un enlace con representa la relación de dos o más objetos que se llama "asociación". La agregación y la composición son tipos de asociaciones. Describen la relación entre clases. Este artículo discute la diferencia entre agregación y composición. los 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 un" y la composición es un tipo más específico de agregación que implica propiedad.
1. Resumen y diferencia clave
2. ¿Qué es la agregación?
3. Que es la composicion
4. Similitudes entre agregación y composición
5. Comparación lado a lado: agregación frente a composición en forma tabular
6. Resumen
Una relación entre dos objetos se muestra dibujando una línea en Unified Modeling Language (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 la clase A se asocia con el único objeto de la clase B, es una relación de 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 se asocia con muchos objetos de la clase B, se trata de una relación de uno a varios. Un ejemplo es que un departamento puede tener muchos empleados. Cuando el objeto de la clase A se asocia con muchos objetos de la clase B y un objeto de la clase B se asocia con muchos objetos de la clase A, es una asociación de muchos a muchos. Un ejemplo es que un empleado puede trabajar en varios proyectos y un proyecto puede tener varios empleados.
La agregación es una asociación de tipo que describe con más detalle la relación entre los objetos. La agregación describe la relación "tiene una". 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. Se puede explicar utilizando el siguiente ejemplo..
Figura 01: Agregación
De acuerdo con el ejemplo anterior, el aula consiste en un estudiante o muchos estudiantes. La multiplicidad también se usa para indicar el número de objetos. Describe que un aula tiene múltiples alumnos. El símbolo del diamante representa la agregación en UML. Los objetos de los estudiantes 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..
La composición es una forma más específica de agregación. Describe la propiedad. Se puede explicar 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 múltiples alumnos. El símbolo de 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 es más específica. Si el objeto de 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 lo tanto, la composición es una forma más específica de una agregación que implica propiedad..
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 conjunto, si el objeto propietario se destruye, no afectará al objeto contenedor.. | En composición, si el objeto propietario se destruye, afectará al objeto contenedor.. |
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 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 un" y la composición es el tipo de agregación más específico que implica la propiedad. La agregación y la composición ayudan a comprender el comportamiento del sistema.
Puede descargar la versión en PDF de este artículo y usarla para fines fuera de línea, como se indica en la nota de cita. Por favor descargue la versión PDF aquí Diferencia entre agregación y composición
1.tutorialspoint.com. "OOAD Object Model". El punto. Disponible aquí
2.6 5 Uso de agregación y composición, Carrera de personas, 22 de mayo de 2015. Disponible aquí