[디자인패턴] 데코레이터 패턴(Decorator pattern)
2016. 11. 21. 16:02ㆍ프로그래밍/디자인패턴
- 목차
데코레이터 패턴(Decorator pattern)
주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴
기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수 있다
작성형식
내용
특징
- 데코레이터의 부모클래스는 자신이 장식하고 있는 객체의 부모클래스와 같으며, 한 객체를 여러 개의 데코레이터로 감쌀 수 있다.
- 데코레이터는 자신이 감싸고 있는 객체와 같은 부모클래스를 가지고 있기 때문에 원래 객체가 들어갈 자리에 데코레이터 객체를 집어넣어도 상관 없다.
- 데코레이터는 자신이 장식하고 있는 객체에게 어떤 행동을 위임하는 것 외에 원하는 추가적인 작업을 수행할 수 있고 객체는 언제든지 감쌀 수 있기 때문에 실행에 필요한 데코레이터를 마음대로 적용할 수 있다.
[펌]http://skmagic.tistory.com/entry/Decoration-%ED%8C%A8%ED%84%B4
Component interface
Decorator class
ConcreteDecorator class
실행 코드
데코레이터 패턴 정의에 적었듯이 이 패턴은 베이스가 되는 Decorator class를 작성 후 거기에 다른 기능을 하는 더해 가는 형식에 패턴인거 같다. 피자를 만든다고 했을경우 기본이 되는 도우 위에 소스와 치즈를 뿌리고 그 위에 피자에 해당하는 토핑을 뿌리듯이 상황에 맞는 행동을 할 수 있도록 코드를 좀더 유연하게 작성할 수 있을것 같다.
참조
https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%BD%94%EB%A0%88%EC%9D%B4%ED%84%B0_%ED%8C%A8%ED%84%B4
http://skmagic.tistory.com/entry/Decoration-%ED%8C%A8%ED%84%B4
'프로그래밍 > 디자인패턴' 카테고리의 다른 글
[디자인패턴] 책임사슬패턴(Chain of Responsibility pattern) (0) | 2016.11.24 |
---|---|
[디자인패턴] 방문자패턴(visitor pattern) (0) | 2016.11.23 |
[디자인패턴] 컴포짓패턴(Composite pattern) (0) | 2016.11.19 |
[디자인패턴] 브릿지패턴(Bridge pattern) (0) | 2016.11.19 |
[디자인패턴] 추상팩토리패턴(Abstract Factory pattern) (0) | 2016.11.17 |