
[디자인패턴] 데코레이터(Decorator) 패턴이란?
·
공부/소프트웨어공학
Decorator 패턴은 Structural Patten이다. 말 그대로 프로그램을 꾸미면서 확장하는 형식이다. 도로를 그리는 프로그램이 있다. 기본프로그램에서 확장해 교통 상황, 차선, 교차로 등을 그릴 수 있도록 확장하려 한다. 이렇게 새로운 기능이 추가될 때마다 기존 코드를 활용하지 못하고 계속 extends를 통해 클래스를 추가하는 게 가장 단순하다. 이는 SOLID 원칙의 LSP를 위반한다. 기능을 재사용하기 위해 일반화 관계를 사용해서는 안된다. 일반화 관계를 사용하지 말고 연관 관계를 사용하는 방식으로 프로그램을 수정해보자.이때 Display가 자기 자신을 연관 관계로 맺는 이유가 헷갈렸는데 알고 보면 단순하다. RoadDisplay의 하위 개념으로 있는 클래스인 RoadDisplay, Ro..