데코레이팅 패턴

    프로그래밍 Design Pattern 이해하기 - 3 데코레이터 패턴

    데코레이터(팅) 패턴 스타버즈라는 커피숍은 매우 빠른 속도로 성장한 초대형 커피전문점이다. 너무 빠른 성장을 했기 때문에 음료의 종류가 다양한데, 이 음료의 종류를 모두 포괄하는 음료 주문시스템을 만들려고 한다. 처음 사업을 시작할 때 만들어진 클래스는 아래의 구조를 띈다. - Superclass beverage는 '음료'를 나타내는 abstract 클래스며, 모든 음료수는 이를 상속받는다. - cost()는 abstract메소드로 자식클래스가 이를 새로 정의하여 가격을 구현한다. - 처음에는 4가지의 커피만 판매하고 있다. 하지만! 엄청나게 빠른 성장을 거두면서, 음료수의 종류가 폭발적으로 늘어가고 각 음료수에 우유, 두유, 모카, 생크림 등 다양한 종류가 생기면서 고민에 빠진다! 첨가물만 들어간다고 ..