Open gmelon opened 1 month ago
gpt와 함께 예시를 짜봤슴당
public class CoffeeShop {
public void serveCoffee(SimpleCoffee coffee) {
System.out.println("Serving " + coffee.getDescription() + " costing " + coffee.getCost());
}
}
위 코드에서 CoffeeShop 클래스는 SimpleCoffee라는 구체적인 클래스에 의존합니다. 만약 데코레이터를 사용해서 MilkDecorator나 SugarDecorator를 추가한다 해도, CoffeeShop은 SimpleCoffee라는 형식만 받아들이기 때문에 데코레이터가 적용된 객체를 처리할 수 없습니다.
// 데코레이터 적용
Coffee coffee = new MilkDecorator(new SimpleCoffee());
// 클라이언트가 SimpleCoffee만 받아들이므로 에러 발생
coffeeShop.serveCoffee(coffee);
p.138에 아래와 같은 내용이 있습니다.
'특정 형식에 의존하는 코드에 데코레이터를 적용' 한다는게 잘 이해가 되질 않아서 질문 드립니다.
혹시 어떤 예제를 생각해볼 수 있을까요?