SSAFY11th-book-study / book-study

SSAFY 11기 6반의 '토비의 스프링 스터디'
0 stars 0 forks source link

[3] 특정 형식에 의존하는 데코레이터 #102

Open gmelon opened 1 month ago

gmelon commented 1 month ago

p.138에 아래와 같은 내용이 있습니다.

image

'특정 형식에 의존하는 코드에 데코레이터를 적용' 한다는게 잘 이해가 되질 않아서 질문 드립니다.

혹시 어떤 예제를 생각해볼 수 있을까요?

hj-k66 commented 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);