객체 컴포지션, 애그리게이션

1 개요[ | ]

object compostion
객체 컴포지션
object aggregation
객체 애그리게이션, 집합
  • 구분 없이 뭉뚱그려 사용하는 경우도 있다.
  • 둘다 포괄하여 광의의 컴포지션이라고 하기도 한다.
  • 둘을 구분하면 설계자의 의도를 보다 명확히 표현할 수 있다.

2 컴포지션[ | ]

  • 강한 결합
  • "일부(part of) + 소유(own) 관계"
  • 자동차(Car)는 엔진(Engine)의 owner
  • 자동차(Car)의 구성요소들 중 하나인 엔진(Engine)
  • 소유자가 없어지면 소유물도 없어진다.

3 애그리게이션[ | ]

  • 약한 결합
  • "일부(part of) 관계"
  • 연못(Pond)에 있는 오리(Duck)
  • 사람(Person)이 가진 주소(Address)
  • 자동차(Car)의 구성요소들 중 하나인 타이어(Tire)
  • 소유자가 없어도 소유물은 단독으로 존재할 수 있다.

AggregationAndComposition.svg

Aggregation-Composition3.png

4 비유[ | ]

UML association, aggregation and composition examples for a bicycle.png

Association
  • 자전거의 소유자는 0~1명 있을 수 있다.
  • 소유자가 없어도 자전거는 독립적으로 존재한다.
  • 자전거가 없는 사람도 있고 여러 대 가진 사람도 있다.
Composition
  • 자전거의 프레임 파트는 1개 이상 있을 수 있다.
  • 자전거가 없으면 프레임 파트도 없다.
Aggregation
  • 자전거의 바퀴는 0~2개 있을 수 있다.
  • 자전거 없어도 바퀴는 독립적으로 존재한다.

5 같이 보기[ | ]

6 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}