-
[GoF]컴포지트 패턴(Composite Pattern)Gof Design Pattern 2021. 12. 18. 19:09
컴포지트 패턴(Composite Pattern)
컴포지트 패턴이란?
그릇과 내용물을 동일시 하는 패턴으로 하나 이상의 유사한 객체를 구성으로 설계된 객체로 모두 유사한 기능을 나타낸다.
컴포지트 패턴 왜 사용할까?
부분과 전체에 대한 복합 객체의 트리구조를 나타낼 수가 있습니다.
클라이언트가 개별 객체와 복합 객체를 동일하게 다룰 수 있는 인터페이스를 제공합니다.
재귀적인 구조입니다.
컴포지트 패턴을 사용하게 되면
- 기본 객체는 복합 객체에 포함이 되고, 복합 객체 역시 또 다른 복합 객체에 포함될 수 있다.
- 클라이언트 코드는 기본객체와 복합객체에 대한 일관된 프로그래밍을 할 수 있다.
- 기본 객체가 증가하여도 전체 객체의 코드에 영향을 주지 않는다.
- 새로운 요소의 추가가 편리하고 범용성 있는 설계가 가능하다.
클래스 다이어그램
객체 협력
- Component
- 전체와 부분 객체에서 공통으로 사용할 기능 구현
- 전체 클래스가 부분요소들을 관리하기 위해 필요한 인터페이스 선언
- 전체와 부분 객체에서 공통적으로 사용할 인터페이스 선언
- Leaf
- 집합 관계에서 다른 객체를 포함할 수는 없고 포함되기만 하는 객체로 가장 기본이 되는 기능을 구현
- Composite
- 포함한 여러 객체를 저장하고 관리하는 기능을 구현
- 여러 객체를 포함하는 복합 객체에 대한 기능 구현
- Client
- Component에 선언된 인터페이스를 통하여 부분과 전체를 동일하게 처리
코드보기 Click!
'Gof Design Pattern' 카테고리의 다른 글
[GoF]스테이트 패턴(State Pattern) (0) 2021.12.20 [GoF] 어댑터패턴(Adapter Pattern) (0) 2021.12.19 [GoF]데코레이터 패턴(Decorator Pattern) (0) 2021.12.16 [GoF]브릿지 패턴(Bridge Pattern) (0) 2021.12.13 [GoF]전략 패턴(Strategy) (0) 2021.12.10