📌 Decorator pattern
기존 뼈대(클래스)는 유지하되, 이후 필요한 형태로 꾸밀 때 사용한다.
확장이 필요한 경우 상속의 대안으로도 활용한다.
SOLOD 중에서 개방폐쇄 원칙(OCP)과 의존 역전 원칙(DIP)를 따른다.
에스프레소에 추가되는 우유, 물, 시럽 처럼
어떤걸 첨가하냐에 따라서 다른 무엇이 되는 원리와 비슷하다.
이 예로 알아보기
https://github.com/6161990/TIL/blob/main/DesignPattern/Decorator%20Pattern.md
Audi의 모델들을 예로 들어보자
ICar 인터페이스를 만들고 Audi가 그것을 구현하고
Main에서 돌려보면
다음과 같은 결과가 나온다.
여기에서 Audi 모델들을 다양하게 추가해보자면,
우선 데코레이터 클래스를 만들어야 한다.
데코레이터 클래스 또한 ICar를 구현한다.
17 getPrice() 메소드에는 Audi 기본가격에 해당 모델 가격을 더한 값을 return하도록 한다.
기본 뼈대는 변하지않고
거기에 부가적인 첨부(getPrice())를 함으로써 결과가 다양하게 나타남.
'이론 > 디자인패턴' 카테고리의 다른 글
[디자인패턴] 파사드 패턴 Pasade Pattern (0) | 2021.06.06 |
---|---|
[디자인 패턴] 옵저버 패턴 Observer Pattern (0) | 2021.06.06 |
[디자인 패턴] 프록시 패턴 Proxy Pattern (0) | 2021.06.04 |
[디자인패턴] 어뎁터 패턴 Adapter Pattern (0) | 2021.06.04 |
[디자인 패턴] 싱글톤 패턴 Singleton pattern (0) | 2021.06.04 |