[Decorator pattern] 데코레이터 패턴


[Decorator pattern] 데코레이터 패턴

데코레이터 패턴이란? 객체의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주는 패턴 즉, 기본 기능에 추가할 수 있는 기능의 종류가 많은 경우에 각 추가 기능을 Decorator 클래스로 정의한 후 필요한 Decorator 객체를 조합함으로써 추가 기능의 조합을 설계 하는 방식이다. 문제의 시작 커피를 주문할 때는 우유, 물, 얼음, 모카 등을 추가 하고, 그 위에 휘핑 크림을 얹기도 한다. 각각을 추가할 때마다 커피 가격이 올라가기 때문에 주문 시스템에도 그런 점들을 모두 고려해야 한다. 에스프레소, 아메리카노, 아이스 아메리카노, 라떼, 아이스 라떼 등 각각 클래스로 만들면 너무 많고 커피가 추가될 때마다 새로운 클래스를 만들어야 한다. 첨가물(우유, 모카 등)의 가격이 변경되면 모든 클래스의 cost()를 변경해야 한다. 문제의 해결 특정 음료(에스프레소) 부터 시작해서 첨가물들로 "장식" 한다. 모든 데코레이터는 cost() 메소드를 갖는다. cost()에서는 부모...



원문링크 : [Decorator pattern] 데코레이터 패턴