2008/08/01 17:52
마인드맵 정리 - 데코레이터 패턴 (Decorator Pattern) 이것만 기억하자!!!
2008/08/01 17:52 in 과학 & 기술 (IT)

데코레이터 패턴 (Decorator Pattern)
신입 바리스타 훈련을 예로 드는 군요..
"라떼 추가하고 휘핑 크림을 얹은 더블 모카" 주문이 들어오면 어떻게 할까요?
카라멜 추가?
- 첨가물의 가격이 바뀔 때 마다 기존 코드를 수정해야 한다.(OpenClosePre.. 원리를 위배함)
- 첨가물의 종류가 추가 되면 새로운 함수를 추가해야 하고, cost() 함수도 추가해야 한다.
- 첨가물이 들어가면 안되는 Tea 서브 클래스에서도 has whip과 같은 함수를 상속 받게 된다.
- 손님이 더블 모카를 주문하면 어떻게 해야 하나?
- Jinsu0000 님 노트 중
- 070626_D.P - jinsu0000님의 노트
정의
이미지 출처: http://wiki.oracleclub.com/download/attachments/1180743/7.jpg
- 동적으로 기능 추가
- 객체에 추가적인 요건을 동적으로 첨가한다.
- 기존 코드를 수정하지 않고도 행동을 확장하는 방법
- 실행중에 새로운 행동 추가
- 서브클래스를 통한 유연한 확장
- 서브클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공
데코레이터가 적용된 대표적인예 : Java I/O
이미지 출처: http://p.blog.csdn.net/images/p_blog_csdn_net/zhoumin008/p4.jpg
참고자료
- 자바 개발자 이야기 :: 데코레이터 패턴
- Head First Design Patterns

Head First Design Patterns - 
에릭 프리먼 외 지음, 서환수 옮김/한빛미디어




Prev
Rss Feed