5. 데코레이터 패턴(Decorator Pattern)
- 객체를 동적(Dynamic)으로 서브 클래스를이용해서 확장한다.
- 기본 클래스 및 해당 객체 자체에 추가적인 서브 클래스를 구성해서 생성자 파라메터로 객체를 넘겨서 원하는 기능을 표현하는 방법
- 구현 클래스와 같은 형식의 데코레이터를 생성하고 해당 데코레이터를 구현한 다양한 서브클래스를 생성한다.
- 구현 클래스와 타입(A)이 같으므로 덧씌울 수 있다.
※ 쉽게 생각하면 구현 되어 있는 클래스가 있고 새롭게 재정의? 구현을 다시 한다면 기존 코드를 복사한 Decorator를 생성 한 다음 서브 클래스에서 다시 재정의 해서 사용하는 방법이다.
자식 클래스?에서 다시 덮어 씌운다는 생각을 갖자
5.1 특징 및 장단점
5.1.1 특징
- 다양한 부가 기능들을 클래스 객체화 해서 주 객체에 씌워 유연하게 확장할수 있다.
5.1.2 장점
- 원래 클래스는 그대로 보존하고 거기에 덧붙이는 서브 클래스가 있는 경우 언제든지 덧씌워 사용할 수 있고 여러가지를 다양하게 꾸밀수있다.
5.1.3 단점
- 데코레이트 하고 난 후에는 원래 객체를 추적하기 힘들다.
- 추상화된 타입을 이용한 객체만 사용 가능
'Game Programming > C++' 카테고리의 다른 글
패턴 - 7. 팩토리 메소드 패턴(Factory Method Pattern) (0) | 2016.09.18 |
---|---|
패턴 - 6. 템플릿 메소드 패턴(Template Method Pattern) (0) | 2016.09.18 |
패턴 - 4. 스트래티지 패턴(Strategy Pattern) (0) | 2016.09.18 |
패턴 - 3. 옵저버 패턴(Observer Pattern) (0) | 2016.09.18 |
cUrl 사용 push (0) | 2014.06.18 |