Diferencia entre agregación y composición en Java

Diferencia entre agregación y composición en Java

Diferencia clave: agregación VS Composición en Java

La agregación es una asociación entre dos objetos que describe la relación "ha-a". La composición es el tipo de agregación más específico que implica propiedad. El diferencia clave entre la agregación y la composición en Java es que, Si el objeto contenido puede existir sin la existencia del objeto propietario, es una agregación, y si el objeto contenido no puede existir sin la existencia del objeto propietario, es una composición.

La programación orientada a objetos (OOP) es un paradigma importante en el desarrollo de software. Se utiliza para modelar el software utilizando objetos. Los objetos se crean usando clases. Una clase consiste en propiedades y métodos. Hay múltiples objetos en el software. Cada objeto colabora entre sí a través del paso de mensajes. La relación entre dos objetos se conoce como asociación. Tanto la agregación como la composición son dos tipos de asociación. La relación "ha-a" describe que un objeto puede usar otro objeto. La agregación y la composición se pueden implementar en idiomas de apoyo OOP. Si el objeto contenido puede existir sin la existencia del objeto propietario, entonces la asociación entre esos dos objetos es una agregación. Si el objeto contenido no puede existir sin la existencia del objeto propietario, entonces la asociación entre esos dos objetos es una composición.

CONTENIDO

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

¿Qué es la agregación en Java??

La agregación es un tipo de asociación. Si una clase tiene una referencia de entidad, se conoce como agregación. La agregación representa la relación ha-a. Un objeto estudiantil puede tener propiedades como student_id, nombre, dirección. Este objeto también puede tener otro objeto llamado dirección con su propia información, como la ciudad, el estado, el país.  En esta situación, el estudiante tiene una dirección de referencia de entidad. Es una relación "ha-a".

Figura 01: Clase de marca

Figura 02: programa principal para describir la agregación

Según el programa anterior, las marcas de clase consisten en tres propiedades que son las marcas de matemáticas, inglés y ciencias. El estudiante tiene un objeto de marcas. Tiene sus propias propiedades que son marcas de matemáticas, inglés y ciencias. En el método principal, se crea un objeto de marcas y se asignan valores de marcas. El objeto estudiantil que es S1 puede usar el objeto Marks que es M1. Por lo tanto, el estudiante y las marcas tienen la relación "HA-A". El objeto de las marcas puede existir sin el objeto del alumno. Por lo tanto, es una agregación.

¿Qué es la composición en Java??

La composición es un tipo de asociación. Es una forma específica de agregación que implica propiedad. Suponga que hay dos clases llamadas Clase A y B. Si el objeto de la clase B no puede existir si el objeto de la clase A se destruye, entonces esa es una composición. Un libro consta de muchas páginas. Si el libro es destruido, las páginas también destruirán. Los objetos de la página no pueden existir sin el objeto del libro. Consulte el siguiente programa.

Figura 03: clase de aula

Figura 04: clase escolar

Figura 05: programa principal para describir la composición

Según el programa anterior, el aula tiene dos propiedades que son NAME y NUMOFSTUDENTS. La escuela es una colección de objetos en el aula. En el método principal, se crean dos objetos en el aula. Esos se agregan a 'aulas'. Estas 'aulas' se pasan al objeto de la escuela. Finalmente, el nombre del aula y el número de estudiantes se imprimen iterando a través de la colección. Si el objeto de la escuela se destruye, los objetos del aula también destruirán. Este es un ejemplo de composición. También contiene la relación 'ha-a' y también implica propiedad.

¿Cuál es la relación entre agregación y composición en Java??

  • La agregación y la composición son dos tipos de asociación y la composición es un tipo especializado de agregación. La composición es un subconjunto de agregación.

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

Agregación vs composición en Java

La agregación es una asociación entre dos objetos que describe la relación "tiene una". La composición es un tipo de agregación más específico que implica la propiedad.
 Uso
La agregación se usa cuando un objeto usa otro objeto. La composición se usa cuando un objeto posee otro objeto.
Afecto en los objetos
En agregación, destruir el objeto de propiedad no afectará el objeto que contiene. En composición, destruir el objeto propietario afectará el objeto que contiene.

Resumen -Agregación VS Composición en Java

La agregación y la composición son dos conceptos en OOP. La relación "ha-a" describe que un objeto puede usar otro objeto. La agregación es una asociación entre dos objetos que describe la relación "ha-a". La composición es un tipo de agregación más específico que implica la propiedad.  La diferencia entre la agregación y la composición en Java es que, si el objeto contenido puede existir sin la existencia del objeto propietario, es una agregación y si el objeto contenido no puede existir sin la existencia del objeto propietario, es una composición.

Referencia:

1."Asociación, composición y agregación en Java."Geeksforgeeks, 8 de febrero. 2018. Disponible aquí 
2."Agregación en Java - Javatpoint."Java Point. Disponible aquí