Design Patterns
[Design Patterns] 데코레이터 패턴(Decorator Pattern)과 OCP(Open-Closed Principle)
BlueSwamp
2014. 2. 21. 03:03
반응형
데코레이터 패턴에서는 객체에 추가적인 요건을 동적으로 첨가한며, 서브 클래스를 만드는 것을 통해서 기능을 유연하게 확장할 수 있는 방법을 재공한다.
데코레이터 패턴의 특징
데코레이터의 슈퍼클래스는 자신이 장식하고 있는 객체의 수퍼클래스와 같다.
한 객체를 여러 개의 데코레이터로 감쌀 수 있다.
데코레이터는 자신이 장식하고 있는 객체에게 어떤 행동을 위임하는 것 외에 원하는 추가적인 작업을 수행할 수 있다.
객체는 언제든지 감쌀 수 있기 때문에 실행중에 필요한 데코레이터를 마음대로 적용할 수 있다.
데코레이터 패턴 사용시 주의할 점
데코레이터 패턴을 사용하면 자잘한 객체들이 매우 만힝 추가될 수 있고, 데코레이터를 너무 많이 사용하면 코드가 필요 이상으로 복잡해질 수도 있다.
이후에 나오는 팩토리와 빌더 디자인 패턴을 배울 때 이러한 객체를 만드는 더 나은 방법에 대해서 설명한다.
데코레이터 패턴 형태
OCP(Open-Closed Principle)
OCP는 가장 중요한 디자인 원칙 가운데 하나이다. 클래스는 확장에 대해서는 열려 있어야 하지만 코드 변경에 대해서는 닫혀있어야 한다. OPC는 기존 코드는 건드리지 않은 채로 확장을 통해서 새로운 행동을 간단히 추가할 수 있어 새로운 기능을 추가하는 데 있어서 유연해 지고 튼튼한 디자인을 만들 수 있다.
반응형