UML
소프트웨어 구조를 시각화하기 위한 표기방식.
Aggression vs Composition
Aggression은 연결된 상위 클래스가 사라져도 aggression 관계에 있는 하위 클래스가 독립적으로 존재할 수 있음을 의미한다.
Composition은 상위 클래스가 사라지면 composition 관계의 하위 클래스가 사라짐을 의미한다.
ex.
aggression: Zoo 클래스가 내부에 변수로 Tiger 클래스를 저장하고 있다고 해보자.
Zoo가 사라져도 Tiger 클래스는 가 하나의 인스턴스로서 남아있다면 이는 aggression 관계이다.
composition: Human 클래스가 내부에 변수로 LeftArm 클래스를 저장하고 있다고 해보자.
Human이 지워질 때 LeftArm 클래스도 지워진다면 이는 composition 관계이다.
'software engineering > design patterns' 카테고리의 다른 글
디자인 패턴을 남용하지 말아야 하는 이유 (0) | 2021.01.09 |
---|---|
State 패턴 (0) | 2021.01.09 |
Memento 패턴 (0) | 2021.01.09 |