[Design Pattern] 데코레이터 패턴(Decorator Pattern)
Head First Design Patterns를 읽고 학습한 내용을 기록합니다. 정의 데코레이터 패턴에서는 객체에 추가적인 요건을 동적으로 첨가한다. 데코레이터는 서브클래스를 만드는것을 통해서 기능을 유연하게 확장할 수 있는 방법을 제공한다. 예제 커피 주문 프로그램을 만든다고 생각해보자. 당연히 커피의 종류가 정의 되어야 할것이다. 일반적으로 아래처럼 만들수 있을것이다. Beverage는 추상클래스이며 Espresso , DarkRoast등 서브클래스가 확장해서 사용하게 된다. 위 구조에서 커피에 두유와 모카 토핑을 하려면 어떻게 해야할까? 첫번째 방법으로는 아래처럼 커피와 토핑이 조합가능한 모든 경우를 서브 클래스로 정의하는것이다. 디카페인 커피(Decaf)에 두유,모카를 토핑하는 경우를 정의했는데..
2021.02.05