728x90
컴포지트 패턴 ( Composite Pattern )
같은 인터페이스로 객체가 독립적으로 다뤄지거나 객체의 집합으로 다뤄지는, 객체 계층의 생성을 도와줍니다.
클래스 다이어그램
Leaft 와 Composite가 같은 Component 클래스를 상속받는다.
Composite 클래스는 Component 클래스를 자식으로 갖는다.
컴포지트 패턴을 구현하는 두 가지 방법
1. Transparency를 위한 구현
모든 컴포넌트가 동일하게 다뤄줘야 한다는 것을 강조한다. 그러나, Leaf 클래스의 입장에서 add, remove, getChild 메소드가 필요 없기 때문에 보안 상의 문제가 있다.
2. Safety를 위한 구현
Leaft 클래스에 Child 연산을 하면, 컴파일 시에 오류가 난다.
그러나, Composite 와 다른 인터페이스를 가져, 투명성을 잃어버린다.
'자바 > 자바 자료실' 카테고리의 다른 글
[디자인 패턴] 12. 중재자 패턴 ( Mediator Pattern ) (0) | 2018.12.19 |
---|---|
[디자인 패턴] 11. 스테이트 패턴 ( State Pattern ) (0) | 2018.12.19 |
[디자인 패턴] GoF 패턴 구분 (0) | 2018.12.19 |
[디자인 패턴] 09. 이터레이터 패턴 (Iterator Pattern) (0) | 2018.12.18 |
[디자인패턴] SOLID 원칙 (0) | 2018.10.24 |
댓글