데코레이터 패턴 (Decorator Pattern)
주어진 상황 및 용도에 따라 어떤 객체에 기능을 덧붙이는 패턴이다.
기능 확장이 필요할 때 서브 클래싱 대신 쓸 수 있는 유용한 대안이다.
》》 동적으로 객체의 추가적인 기능들을 가진 객체를 덧붙여 꾸밀 수 있다.
여기서 중요한 디자인 원칙 중 하나를 알아야한다.
OCP(Open-Closed Principle) 란?
OCP는 가장 중요한 디자인 원칙 가운데 중 하나.
클래스는 확장에 대해서는 열려있어야하지만 코드 변경에 대해서는 닫혀 있어야 한다.
》》 기존 코드는 건드리지 않은 채로 확장을 통해서 새로운 행동을 추가하는 것이 목표 !
데코레이터 패턴 사용법
1. 메인 클래스를 생성한다.
2. 메인 클래스의 객체를 꾸밀 수 있는 서브 클래스의 데코레이터 타입 또는 데코레이터 수퍼클래스를 생성한다.
3. 데코레이터 인터페이스/추상클래스를 구현(상속)한 서브 클래스를 만든다.
4. 메인 클래스의 객체를 생성하면서 해당 객체를 생성자 파라미터를 활용해서 덧씌운다.
데코레이터 패턴 예제
데코레이터가 적용된 예 : 자바 I/O
'Knowledge > Design Pattern' 카테고리의 다른 글
추상 팩토리 패턴 (Abstract Factory Pattern) (0) | 2017.01.19 |
---|---|
팩토리 메소드 패턴 (Factory Method Pattern) (0) | 2017.01.16 |
옵저버패턴 (Observer Pattern) (0) | 2017.01.13 |
전략패턴 (Strategy Pattern) (0) | 2017.01.13 |
디자인 패턴 (Design Pattern) 이란 ? (0) | 2017.01.13 |