사용 시점 및 이유
- 어떤 클래스를 변경 없이 특정 기능을 추가하고 싶을 때
- 기능 확장에 있어 상속을 사용할 경우 클래스가 너무 많이 생길 때
- 상속보다 설계에 융통성을 부여하고 싶을 때 (상속은 컴파일 타임에 기능확장에 대해 클래스로 정의가 되나, 데코레이터 패턴을 사용하면 런타임에 가능)
패턴 구현
- Decorator 추상 클래스와 꾸밈을 받을 본체인 ConcreteComponent는 동일한 Component를 구현 한다.
- Decorator는 Component를 가질 수 있으므로, 본체인 ConcreteComponent일 수도 있고, 그 ConcreteComponent를 가진 ConcreteDecorator일 수도 있다.
- Decorator로 감싸는 식으로 기능을 확장 한다.
'디자인패턴' 카테고리의 다른 글
(구조패턴) 퍼사드 패턴 (0) | 2023.04.28 |
---|---|
(구조패턴) 컴포지트(복합체) 패턴 (0) | 2023.04.28 |
(구조패턴) 브릿지패턴 (0) | 2023.04.25 |
(구조패턴) 어댑터패턴 (0) | 2023.04.25 |
(생성패턴) 프로토타입 패턴 (0) | 2023.04.24 |