디자인 패턴/구조 패턴

Decorator 패턴

언린이 2021. 9. 7. 09:29

Decorator 패턴은 기본 객체에 추가적인 기능을 동적으로 유연하게 첨가하는 패턴입니다.

 

 

구조

  • Component
    • ConcreteComponent와 Decorator가 구현할 인터페이스입니다. 두 객체를 동등하게 다루기 위해 존재합니다.
  • ConcreteComponent
    • Decorate를 받을 객체입니다. 즉, 기능 추가를 받을 기본 객체를 의미합니다.
  • Decorator
    • Decorate를 할 객체의 추상 클래스입니다. 즉, 기능 추가를 할 객체는 이 객체를 상속받습니다.
  • ConcreteDecorator
    • Decorator를 상속받아 구현할 다양한 기능 객체입니다. 이 기능들은 ConcreteComponent에 추가되기 위해 만들어 집니다.

 

 

활용 상황

  • 객체가 상황에 따라 다양한 기능이 추가되거나 삭제되어야 할때 유용합니다.

 

 

Decorator 패턴의 장단점

  • 장점
    • 객체에 동적으로 기능 추가를 간단하게 할 수 있습니다.
  • 단점
    • 자잘한 Decorator 클래스들이 계속 추가되어 클래스가 많아질 수 있습니다.
    • 기능을 추가할때마다 Decorator 클래스들이 겹겹이 쌓이기 때문에 객체의 정체를 알아보기 힘들고 복잡해질 수 있습니다.

'디자인 패턴 > 구조 패턴' 카테고리의 다른 글

Facade 패턴  (0) 2021.10.05
Bridge 패턴  (0) 2021.10.02
Adapter 패턴  (0) 2021.09.11
Proxy 패턴  (0) 2021.09.05
Composite 패턴  (0) 2021.09.04