Decorator Pattern
- 객체들을 새로운 행동들을 포함한 특수 래퍼 객체들 내에 넣어서 행동들을 해당 객체들에 연결시키는 디자인 패턴.
- 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안
- 다른 인스턴스의 동작에 영향을 주지 않고 동적으로 개별 객체 에 동작을 추가
구조
- Component와 그 객체를 감쌀 Decorator 객체가 존재
- Decorator 객체 안에 Component를 구성.

장점
- sub class를 만들지 않고 객체의 행동을 확장.
- 런타임에 객체들에게 책임을 추가하거나 제거
- 여러 종류의 Decorator를 이용하여 여러가지 행동을 합성
단점
- 여러 Decorator 사용 시 특정 Decorator만 제거 하기 어려움
- 순서에 의존 하지 않는 방식으로 구현이 어려움.
- 초기화 코드가 읽기 힘들 수 있음.
예
- 자바 IO Stream
참조
'지식 > 디자인패턴' 카테고리의 다른 글
| Head First Design Patterns : Singleton Pattern (1) | 2024.01.01 |
|---|---|
| Head First Design Patterns : Factory Pattern (0) | 2023.12.31 |
| Publish-Subscribe Pattern (0) | 2023.12.11 |
| Head First Design Patterns : Observer Pattern (1) | 2023.12.10 |
| Head First Design Patterns : Strategy Pattern (0) | 2023.11.29 |