Tengo dificultades para entender esto cuando se trata de diseñar un diagrama de clases, por lo que sé que la composición es una relación "tiene-un" pero ¿Agregación? No tengo idea de qué es eso. y una cosa, ¿cuándo sabré usar Composition en un diagrama de clase? y ¿cuándo sabré usar Agregación en un diagrama de clase? un ejemplo será muy apreciado.Composición y agregación en un diagrama de clase
Respuesta
La principal diferencia entre una agregación y una composición es la propiedad de su relación "tiene una". Es fuerte o débil.
Las agregaciones "tiene-una" relación es de "tipo débil". Débil significado, los componentes vinculados del agregador pueden sobrevivir el ciclo de vida de las agregaciones o se puede acceder de alguna otra manera. Un ejemplo simple sería un club de fútbol con sus miembros. Si se descifra el club, todavía tienes los miembros, que de hecho también podrían ser miembros de otros clubes y por lo tanto se mantienen vivos.
La composición "tiene una relación" es de "tipo fuerte". Fuerte significado que uno no puede existir sin el otro. Los ciclos de vida del componente están directamente relacionados con el "padre". Un ejemplo sería una casa con habitaciones. Si decides derribar la casa, también perderás tus habitaciones.
Tal vez un poco abstracto, pero creo que esa es la idea detrás de ello.
Ver respuestas a las preguntas anteriores here, here y here.
Personalmente no uso Agregación. La semántica es demasiado débil para ser útil. Causa más problemas de los que soluciona. Solo hay un lugar donde tiene propiedades bien definidas y potencialmente útiles que lo distinguen de una simple asociación binaria (ver nota al pie).
La composición puede ser útil porque define las propiedades importantes de la inmutabilidad y la gestión del ciclo de vida (consulte el primer enlace más arriba). He sobrevivido bastante feliz durante muchos años sin necesidad de utilizar Agregación.
hth.
Nota al pie. La agregación puede ser aplicable si necesita modelar una relación de árbol recursiva, p. una parte descompuesta recursivamente en subpartes. La agregación dice que no puede haber relaciones circulares, es decir, una parte no puede ser una subparte de sí misma, directa o indirectamente. Sin embargo, es poco probable que la mayoría de las personas que lean el modelo lo sepan. -Entonces necesitarías agregar un comentario. Lo que significa que sería mejor quedarse con una asociación binaria y evitar la confusión de usar Aggregation.
- 1. Diagrama de clase UML Asociación vs (Agregación | Composición) -Diamantes
- 2. implementación de composición y agregación en C#?
- 3. Composición, herencia y agregación en JavaScript
- 4. Cómo escribir composición y agregación en java
- 5. Conversión de asociación, agregación y composición en código en java?
- 6. ¿cómo se escriben la asociación, la agregación y la composición?
- 7. UML composición diagrama de clases con la clase jerarquías
- 8. ¿Cuál es la diferencia entre agregación, composición y dependencia?
- 9. generar diagrama de herencia/agregación de proyecto maven
- 10. UML: Clase interna en un diagrama de clase
- 11. generando diagrama de clase
- 12. Creación de un diagrama de clase C++
- 13. Android API clase diagrama
- 14. Liskov SUSTITUCIÓN y Composición
- 15. Agregación de interfaz en diagramas de clase UML
- 16. Cómo mostrar la relación de herencia privada en un diagrama de clase UML
- 17. ¿Cuál debería crearse primero ER Diagrama O Diagrama de clase?
- 18. ¿Qué es "Atributos derivados" en un Diagrama de clase?
- 19. Tubería, Composición y Currying
- 20. ¿Cómo implementar la composición de clase en C++?
- 21. Generación automática de una clase Wrapper en C# usando Composición
- 22. ¿Es correcto el diagrama de clase UML de Zend_Log?
- 23. Composición de función y tupla
- 24. Diagrama de clase de excepción Java?
- 25. Código de C++ al diagrama de clase
- 26. Diagrama de clase de Visual Studio 2010
- 27. ¿Cuál es la diferencia entre la relación Composición y Asociación?
- 28. Plugin de Eclipse para generar un diagrama de clase
- 29. Agregación UML vs asociación
- 30. Composición de funciones en Java
Olvidé preguntar, ¿qué tal la asociación? – user962206