개발 알다가도 모르겠네요

Decorator Pattern 을 알아보자 본문

디자인패턴

Decorator Pattern 을 알아보자

이재빵 2021. 12. 14. 12:28
728x90

기본 기능에 추가될 수 있는 많은 수의 부가 기능에 대해서 다양한 조합을 동적으로 구현 할 수 있는 패턴

기본 기능에 추가할 수 있는 기능의 종류가 많은 경우에 쓰입니다.

 

 

 

Example - 도로 표시 방법 조합하기

 

-RoadDisplay 클래스: 기본 도로 표시 기능을 제공하는 클래스

-RoadDisplayWithLane 클래스: 기본 도로 표시에 추가적으로 차선을 표시하는 클래스

 

 

  • 또다른 추가적인 도로 표시 기능을 구현하고 싶다면?
  • 기본 도로 표시에 교통량을 표시하고 싶다면?
  • 여러가지 추가 기능의 조합하여 제공하고 싶다면? 기본 도로 표시에 차선 표시 기능과 교통 량 표시 기능을 함께 제공하고 싶다면?

추가 기능을 구현하려면 수많은 조합의 클래스가 필요하다.

 

해결책