2016년 4월 1일 금요일

Design Pattern Digest - 11. Decorator

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


Decorator



  • 원래의 오브젝트에 장식(덧붙이기)를 계속해서 해나갈 수 있는 패턴으로 장식과 내용물을 동일시 한다는 점에서 Composite 패턴과 유사하다.
  • 차이점은 구상 클래스가 Leaf, Composite 두 유형이 아니라 ConcreteDecorator 하나이다. (물론 실제 구상 클래스는 여러 개) 뿐만 아니라 Decorator-ConcreteDecorator보다 한 단계 더 위가 있는데 (여기서는 Component) 덕분에 Decorator 계통이 아닌 ConcreteComponent도 있다. 그래서 ConcreteComponent가 장식물들 가장 안쪽의 내용물이 된다. 
  • [예제] StringDisplay(=ConcreteComponent)를 ConcreteDecorator인 SideBorder, FullBorder들이 겹겹이 둘러싸아 장식하는 코드 


댓글 없음:

댓글 쓰기