[디자인 패턴] 데코레이터(Decorator)

y30n9ju1v·2021년 9월 22일
0

프로그래밍

목록 보기
15/18

정의

데코레이터는 동작을 포함하는 특수 래퍼 객체 내부에 객체들을 배치하여 객체에 새 동작을 추가할 수 있는 구조적 디자인 패턴입니다.
wrapper라고도 알려져 있습니다.

UML

장단점

  • 장점
    1. 새로운 서브 클래스를 작성하지 않고 개체의 동작을 확장 할 수 있습니다.
    2. 런타임에 개체에 책임을 추가 또는 삭제할 수 있습니다.
    3. 개체를 여러 장식에 랩하는 것으로, 어떤 동작을 결합 할 수 있습니다.
    4. 단일 책임의 원칙.
      동작의 여러 가지 변형을 구현하는 단일 클래스를 여러 개의 작은 클래스로 나눌 수 있습니다.
  • 단점
    1. 래퍼 스택에서 특정 래퍼를 제거하는 것은 어렵습니다.
    2. 데코레이터 스택의 순서로 그 동작이 독립적 인 방식으로 장식을 구현하는 것은 어렵습니다.
    3. 레이어의 기본 구성 코드는 상당히보기 흉한지도 모릅니다.

참고

0개의 댓글