본문

160210P(수) - Head First Disign Pattern (Decorater Pattern)

Head First Disign Pattern - Decorater Pattern


디자인 원칙 [

OCP(Open-Closed Principle)

클래스는 확장에 대해서는 열려 있어야 하지만 코드 변경에 대해서는 닫혀 있어야 한다.

]


무조건 OCP를 적용하는 것은 시간 낭비가 될 수도 있고, 괜히 쓸 데 없는 일을 하는 것일 수도 있습니다. 결과적으로 불필요하게 복잡하고 이해하기 힘든 코드만 만들게 되는 부작용이 있을 수도 있으니 주의해야 한다.


데코레이터 패턴(Decorator Pattern)

객체에 주가적인 요건을 동적으로 첨가한다. 데코레이터는 서브 클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다.


데코레이터 적용 예: 자바 I/O


데코레이터 단점

1. 자잘한 클래스들이 엄청나게 추가되는 경우가 있다.


2. 특정 형식에 의존하는 클라이언트 코드를 가지고 와서 제대로 생각해보지 않고 데코레이터 패턴을 적용하는 사람들이 있다.


3. 구성 요소를 초기화하는데 필요한 코드가 훨씬 복잡해진다.


※ 빌더와 팩토리와 함께하면 단점을 극복 가능하다.



공유

댓글