Diferencia clave: agregación frente a composición en Java
La agregación es una asociación entre dos objetos que describe la relación "tiene-a". La composición es el tipo de agregación más específico que implica propiedad. La diferencia clave entre agregación y 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 mediante clases. Una clase consta de propiedades y métodos. Hay varios 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 "tiene-a" describe que un objeto puede utilizar otro objeto. La agregación y la composición se pueden implementar en lenguajes de soporte de programación orientada a objetos. 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 clave
2. Qué es la agregación en Java
3. Qué es la composición en Java
4. Similitudes entre la agregación y la composición en Java
5. Comparación lado a lado: agregación versus composición 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 tiene-a. Un objeto Student puede tener propiedades como student_id, name, address. Este objeto también puede tener otro objeto llamado dirección con su propia información como ciudad, estado, país. En esta situación, el Estudiante tiene una dirección de referencia de entidad. Es una relación "tiene-a".
Figura 01: Clase de marcas
Figura 02: Programa principal para describir la agregación
Según el programa anterior, las calificaciones de la clase constan de tres propiedades que son las calificaciones de matemáticas, inglés y ciencias. El estudiante tiene un objeto de marcas. Tiene sus propias propiedades que son notas 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 de estudiante que es s1 puede usar el objeto de marcas que es m1. Por lo tanto, el estudiante y las marcas tienen la relación "tiene un". El objeto Marks puede existir sin el objeto Student. Por 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 eso es una composición. Un libro consta de muchas páginas. Si el libro se destruye, las páginas también se destruirán. Los objetos de página no pueden existir sin el objeto de libro. Consulte el programa a continuación.
Figura 03: Clase en el aula
Figura 04: Clase de escuela
Figura 05: Programa principal para describir la composición
Según el programa anterior, el Aula tiene dos propiedades que son name y numOfStudents. The School es una colección de objetos Classroom. En el método principal, se crean dos objetos Classroom. Aquellos 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 School se destruye, los objetos Classroom también se destruirán. Este es un ejemplo de composición. También contiene la relación "tiene-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?
Diferencia del medio del artículo antes de la mesa
Agregación vs Composición en Java |
|
La agregación es una asociación entre dos objetos que describe la relación "tiene un". | La composición es un tipo de agregación más específico que implica 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 propietario no afectará al objeto contenedor. | En composición, destruir el objeto propietario afectará al objeto contenedor. |
Resumen: agregación frente a composición en Java
La agregación y la composición son dos conceptos en OOP. La relación "tiene-a" describe que un objeto puede usar otro objeto. La agregación es una asociación entre dos objetos que describe la relación "tiene-a". La composición es un tipo de agregación más específico que implica propiedad. La diferencia entre agregación y 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.