Composite 패턴이란?
- 계층 구조를 클라이언트로부터 숨기는 패턴
- 클라이언트 입장에서 전체이든 부분이든 모두 동일한 메시지를 가진 컴포넌트로 인식할 수 있는 계층 구조를 만든다.
- 계층은 트리 구조로 표현된다. leaf는 가장 primitive한 단위, Composite은 컴포넌트를 그룹으로 가지는 단위이다.
- 계층이 복잡해지더라도 클라이언트 코드를 간결하게 유지할 수 있다.
구현하기
Component Interface
primitive 타입이든 복합 타입이든 클라이언트가 사용하는 공통 메시지를 정의
public interface Component {
int getPrice();
}
Leaf
primitive 타입