Purpose of Composite Pattern (컴포지트 패턴의 목적)
- Facilitates the creation of object hierarchies where each object can be treated independently or as a set of nested objects through the same interface.
- 각 개체를 독립적으로 처리하거나 동일한 인터페이스를 통해 중첩된 개체 집합으로 처리할 수 있는 개체 계층 구조를 쉽게 만듭니다.
Composite pattern (컴포지트 패턴)
- composite의 의미는 '합성의', '합성물', '혼합 양식'이다. →뭔가 합쳐진 형태이겠지..!
- composes objects into tree structures to represent whole-part hierarchies.
- 일반적인 트리 구조를 하고 있는데, 전체-부분 계층을 표시하는 상속 구조
- lets clients treat individual objects and compositions of objects uniformly.
- composite 패턴은 사용자가 단일 객체와 복합 객체 모두 동일하게 다루도록 →재귀적인 구조
- leaf/ non-leaf type 관계없이 동일한 access를 원할 때, uniform 하게 동일한 interface로 접근이 가능함)
Related Patterns
- Composite vs Decorator : 둘다 recursive composition이나 의도가 다르다!
• Decorator lets you add responsibilities to objects without subclassing (책임을 부여)
• Composite's focus is not on embellishment but on representation (보여주는 것에 집중)
- Iterator (Composite pattern으로 생성된 객체에 순차적으로 액세스
: provide a way to access the elements of an aggregate object (=typically uses composite pattern) sequentially without exposing its underlying representation.
Quiz) 파일 시스템의 컴포넌트의 종류에는 PlainFile, VirtualFile, 그리고 Directory가 있다. Directory에는 다른 PlainFile, VirtualFile 혹은 다른 Directory를 포함할 수 있다. 클라이언트는 이들 파일 시스템의 컴포넌트를 일관된 방식으로 다루고자 한다. 이를 위해 파일 시스템의 컴포넌트 체계를 Composite 패턴을 사용하여 표현하시오.
본 글은 개인의 S/W 구조설계 역량 강화를 위한 학습 목적으로 정리된 내용입니다.
일부 타/개인 단체에 저작권이 있는 자료를 포함하고 있으므로, 절대 영리 목적으로 사용하실 수 없습니다.
'SW 공부 > Design Patterns' 카테고리의 다른 글
MVC pattern (2) | 2022.08.29 |
---|---|
[디자인패턴] Bridge pattern (브릿지 패턴) (0) | 2022.08.28 |
[디자인패턴] Adapter pattern (어댑터 패턴) (2) | 2022.08.28 |
[디자인패턴] Decorator pattern (데코레이터 패턴) (2) | 2022.08.28 |
[디자인패턴] Singleton pattern (싱글톤 패턴) (2) | 2022.08.28 |
댓글