본문 바로가기
Programming/Java

[Java] 디자인 패턴 - Decorator(데코레이터, 장식자) 패턴

by Hello2 2022. 1. 25.

데코레이터 패턴은 기존에 사용하고 있는 클래스를 변경하는 것이 아니라

기능이 변경되고 추가된 유사하지만 로운 클래스를 생성해 주는 것이다.

밑줄 친 내용만 알면 이해가 훨씬 쉬워진다!

 

아래는 가정은 단순히 설명을 위한 예시일 뿐 현실과는 다를 수 있으니 깊게 생각하지말고 단순히 그렇구나 하고 받아들이자!

 

1. 예를들어 커피 레시피가 있다고 하면!

아메리카노가 가장 기본 적인 레시피라고 가정하겠다.

그러면 카페라떼 주문이 들어왔을 때 기존의 아메리카노를 변경하는게 아니라

우유와 기타 등등을 넣어 카페라떼라는 새로운 메뉴를 만드는 것이다!

 

2. 예를 들어 차(Car)가 있다고 하면!

차의 서로 다른 모델을 만든다면,

초기 모델의 제조공정은 그대로 두고,

업그레이드를 위한 설비를 추가해서 다른 모델을 찍어 내는 것이다!

 

디자인 패턴에 너무 연연하지 말자. 

문제가 닥쳤을 때 해결하기 위한 방안으로 나온게 디자인 패턴이기 때문에,

너무 남발하거나 필요 없는데 사용하는 것은 

개발과 유지보수를 힘들게 한다.