나만 이해하도록 불친절하게 작성되어 있습니다.
자세한 내용은 책을 보세요.
Composite
- 그릇과 내용물을 동일하게 취급하여 재귀적인 처리가 가능하게 하는 패턴
- Composite이라는 그릇은 Component를 담을 수 있는데 Component는 Composite이라는 그릇도 되고 Leaf라는 최종 내용물도 된다.
- 예를 들어, Entry(=Component), Directory(=Composite), File(=Leaf)라고 가정해보자 Entry에 정의된 getSize()라는 메소드는 File에서는 실제 file size를 반환하고 Directory에서는 하위 Entry들의 getSize() 총합으로 구현하면 된다. (재귀적 호출)
- 만일 Leaf는 처리할 수 없는 메소드가 있다면 Entry를 abstract class로 선언하고 모든 메소드에 Exception을 던지게 만들어도 된다.
댓글 없음:
댓글 쓰기