클래스 다이어그램을 디자인 할 때 컴포지션에 "has-a"관계가 있지만 Aggregation은 알고있는 것을 이해하는 데 어려움을 겪고 있습니까 ?? 나는 그것이 무엇인지 전혀 모른다. 클래스 다이어그램에서 컴포지션을 사용하는 것을 언제 알 수 있습니까? 클래스 다이어그램에서 집계를 사용하는 것을 언제 알 수 있습니까? 예를 들어 주시면 감사하겠습니다.클래스 다이어그램의 작곡과 집계
답변
집합과 구성의 주요 차이점은 "has-a"관계의 속성입니다. 그것은 강하고 약한 것입니다.
집계 "has-a"관계는 "약한 유형"입니다. 약한 것은 집합 자의 연결된 구성 요소가 집합 생명주기에서 존속하거나 다른 방법으로 액세스 될 수 있음을 의미합니다. 간단한 예가 회원으로있는 축구 클럽입니다. 클럽이 황폐 해지면 여전히 회원이 생겨나게됩니다. 실제로 다른 클럽의 회원이되어 살아 남을 수 있습니다.
"has-a"관계는 "strong-type"입니다. 강한 의미는 사람이 다른 사람과 함께 존재할 수 없다는 것입니다. 구성 요소의 수명주기는 "상위"에 직접 연결됩니다. 예를 들어 방이있는 집이 있습니다. 집을 찢기로 결정하면 방도 잃어 버릴 것입니다.
어쩌면 조금 추상적 일 수도 있지만 그 생각은 그 뒤에 있다고 생각합니다.
이전 질문에 대한 답변보기 here, here 및 here.
개인적으로 나는 집계를 사용하지 않습니다. 의미론이 너무 약해서 유용하지 않습니다. 그것은 해결할 수있는 것보다 많은 문제를 야기합니다. 간단한 바이너리 연관과 구별되는 명확하고 잠재적으로 유용한 속성이있는 곳은 단 한 곳입니다 (각주 참조).
컴포지션은 불변성 및 수명주기 관리에 중요한 속성을 정의하므로 유용 할 수 있습니다 (위의 첫 번째 링크 참조). 저는 Aggregation을 사용할 필요없이 오랫동안 아주 행복하게 살아 왔습니다.
hth.
각주. 재귀 트리 관계를 모델링해야하는 경우 집계를 적용 할 수 있습니다 (예 : 부분은 재귀 적으로 하위 파트로 분해됩니다. 집계에는 순환 관계가 없어서 부품이 직접 또는 간접적으로 자체의 하위 부분이 될 수 없다고합니다. 그러나 모델을 읽는 대부분의 사람들은 그것을 알지 못할 것입니다. - 덧글을 달아주세요. 즉, 바이너리 연결을 고수하고 집계 사용의 혼란을 피할 수 있습니다.
- 1. UML 클래스 다이어그램의 인터페이스 집계
- 2. UML 클래스 다이어그램의 관계
- 3. Visual Studio 2008 클래스 다이어그램의 연결
- 4. UML 클래스 다이어그램의 클래스 또는 유형으로 간주해야합니까?
- 5. UML 클래스 다이어그램의 목적 C 프로토콜 표현
- 6. uml 클래스 다이어그램의 조건 일 경우?
- 7. VS 클래스 다이어그램의 네임 스페이스 참조
- 8. 클래스 다이어그램의 속성 이름이 정렬되지 않도록하려면 어떻게해야합니까?
- 9. uml 클래스 다이어그램의 함수와 데이터를 연결하는 방법
- 10. VS 2010 클래스 다이어그램의 오류 발생 VS 2010 클래스 다이어그램에
- 11. 클래스 속성은 클래스 다이어그램의 속성 또는 메서드로 계산됩니까? 여기
- 12. C++ 초기화 목록, 클래스 (집계) 클래스
- 13. 객체 다이어그램의 집합 연관
- 14. UML 다이어그램의 종속성
- 15. 활성 다이어그램의 ArgoUML 신호
- 16. ADO.NET Entity FrameWork 4에서 Edmx 다이어그램의 클래스 다이어그램을 어떻게 생성합니까?
- 17. UML 클래스 다이어그램의 클래스는 개념 데이터 모델의 엔티티로 항상 변환됩니까?
- 18. UML 시퀀스 다이어그램의 문제점
- 19. 유스 케이스 다이어그램의 본질
- 20. 네트워크 다이어그램의 가장자리 방향
- 21. 유스 케이스 다이어그램의 CRUD?
- 22. 개체를 UML 다이어그램의 필드로 연결
- 23. 기본 클래스를 확장하는 집계 클래스 - LSP 위반?
- 24. 집계 객체
- 25. uml 구성 요소 다이어그램의 가능성
- 26. UML 활동 다이어그램의 비동기 콜백
- 27. 시퀀스 다이어그램의 메시지 유형 차이점
- 28. MindFusion WPF 다이어그램의 LinkModified 이벤트
- 29. UML 상태 머신 다이어그램의 스레드?
- 30. 보로 노이 다이어그램의 볼록한 선체
나는 묻는 것을 잊었다, 협회는 어떨까요? – user962206