2016년 4월 1일 금요일

Design Pattern Digest - 10. Composite

이글은 책 "Java언어로 배우는 디자인 패턴 입문"을 읽고 쓴 요약입니다. 
나만 이해하도록 불친절하게 작성되어 있습니다. 
자세한 내용은 책을 보세요. 


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을 던지게 만들어도 된다. 


댓글 없음:

댓글 쓰기