Soy consciente de las diferencias conceptuales entre agregación y composición. ¿Alguien puede decirme la diferencia de implementación en Java entre ellos con ejemplos?
java
relationship
aggregation
composition
Rajath
fuente
fuente
Respuestas:
Composición
Agregación
En el caso de la composición, el Motor está completamente encapsulado por el Coche. No hay forma de que el mundo exterior obtenga una referencia al motor. El motor vive y muere con el coche. Con la agregación, el automóvil también realiza sus funciones a través de un motor, pero el motor no siempre es una parte interna del automóvil. Los motores se pueden cambiar o incluso quitar por completo. No solo eso, sino que el mundo exterior aún puede tener una referencia al motor y jugar con él independientemente de si está en el automóvil.
fuente
new Engine(EngineSpecs)
llamada incluso si no hay automóvil. La forma de lograr la composición es crear Motor como una clase interna, de modo que un objeto de motor siempre se cree con referencia a un Objeto de automóvilUsaría un buen ejemplo de UML.
Tome una universidad que tenga de 1 a 20 departamentos diferentes y cada departamento tenga de 1 a 5 profesores. Existe un vínculo de composición entre una Universidad y sus departamentos. Existe un vínculo de agregación entre un departamento y sus profesores.
La composición es solo una agregación FUERTE, si se destruye la universidad, los departamentos también deberían destruirse. Pero no deberíamos matar a los profesores incluso si sus respectivos departamentos desaparecen.
En java:
Algo alrededor de esto.
fuente
Hay una gran explicación en la URL dada a continuación.
http://www.codeproject.com/Articles/330447/Understanding-Association-Aggregation-and-Composit
¡¡¡Por favor, compruebe!!!
fuente
La diferencia es que cualquier composición es una agregación y no al revés.
Establezcamos los términos. La agregación es un metatérmino en el estándar UML y significa AMBAS composición y agregación compartida, simplemente denominada compartida . Con demasiada frecuencia se denomina incorrectamente "agregación". Es MALO, porque la composición también es una agregación. Según tengo entendido, te refieres a "compartido".
Más allá del estándar UML:
Entonces, la asociación de la Universidad a las cátedras es una composición, porque la cátedra no existe fuera de la Universidad (en mi humilde opinión)
Es decir, todas las demás asociaciones se pueden dibujar como agregaciones compartidas, si solo está siguiendo algunos principios suyos o de alguien más. También mira aquí .
fuente
En lenguaje sencillo :
Tanto la composición como la agregación son asociaciones. Composición -> Fuerte relación Has-A Agregación -> Relación débil Has-A.
fuente
Un programa de composición simple
fuente
Primero debemos hablar sobre cuál es realmente la diferencia entre
Aggregation
yComposition
es estar en la misma página.mientras
Ahora, la agregación se puede lograr simplemente manteniendo una propiedad de una entidad en otra como se muestra a continuación:
Para Composición es necesario que el objeto dependiente siempre se cree con la identidad de su objeto asociado. Puede usar una clase interna para lo mismo.
fuente
Agregación vs Composición
La agregación implica una relación en la que el niño puede existir independientemente del padre. Por ejemplo, Banco y Empleado, elimine el Banco y el Empleado todavía existe.
mientras que Composición implica una relación en la que el niño no puede existir independientemente del padre. Ejemplo: Humano y corazón, el corazón no existe separado de un Humano.
La relación de agregación es "tiene-a" y la composición es la relación "parte de".
La composición es una asociación fuerte, mientras que la agregación es una asociación débil.
fuente
Ambos tipos son, por supuesto, asociaciones, y en realidad no se asignan estrictamente a elementos del lenguaje como ese. La diferencia está en el propósito, el contexto y cómo se modela el sistema.
Como ejemplo práctico, compare dos tipos diferentes de sistemas con entidades similares:
Un sistema de registro de automóviles que principalmente realiza un seguimiento de los automóviles y sus propietarios, etc. Aquí no estamos interesados en el motor como una entidad separada, pero es posible que aún tengamos atributos relacionados con el motor, como la potencia y el tipo de combustible. Aquí, el motor puede ser una parte compuesta de la entidad automóvil.
Un sistema de gestión de taller de servicio de automóviles que administra las piezas del automóvil, el servicio de los automóviles y el reemplazo de piezas, tal vez motores completos. Aquí incluso podemos tener motores almacenados y necesitamos realizar un seguimiento de ellos y otras partes por separado e independientemente de los automóviles. Aquí, el motor puede ser una parte agregada de la entidad del automóvil.
La forma en que implemente esto en su idioma es una preocupación menor, ya que en ese nivel, cosas como la legibilidad son mucho más importantes.
fuente