1) 어그리게이션(aggregation)
2) 컴포지션(composition)
Aggregation과 composition은 전체와 부분사이의 연관, 전체와 부분 사이의 관계
전체와 부분의 관계인데
도메인 전문가는 이를 구성되어 있다, 포함되어 있다라고 표현
UML은 이를 aggregation과 composition으로 표현
구성과 포함, aggregation과 composition은 1-1 matching되는 것이 아니라, 전혀 다른 개념이다!
생성 측면이 아니라 사용 측면으로 봐야 함.
Aggregation
- composition보다 좀 더 느슨한 관계
- container 혹은 collection 관계
- contained class는 container에 강한 dependency를 가지지 않음
- container가 없어져도, contained class는 남아 있음
전체와 부분 관계로 본다면...
- 전체와 부분 관계에서 부분이 간접적으로 전체를 구성하거나, 전체에 포함될 때의 부분과 전체의 관계
- 부분을 재사용할 수 있음
- 전체가 죽어도, 부분은 살아 있음
- 전체가 여러개 될 수 있음
- 부분 자체로 인식됨
Composition
- ownership
- aggregation보다 좀 더 구체적인 관계
- container class와 contained class가 강한 dependency를 가지고 있음
- container가 없어지면, 포함하고 있는 모든 contained class도 없어짐
전체와 부분 관계로 본다면...
- 전체와 부분 관계에서 부분이 직접적으로 전체를 구성하거나, 전체에 포함될 때의 부분과 전체의 관계
- 전체가 죽으면, 부분도 죽음
- 전체는 1개
- 전체를 통해서만 부분이 인식됨