其中一個配料類代碼:java
public class Fruit extends AbstractDrinkDecorator { public Fruit(Drink drink) { super(drink); } @Override public double price() { return 1.5 + drink.price(); } @Override public String destribe() { return drink.destribe() + " 加果粒 "; }測試:ide
public static void main(String[] args) { Drink drink = new Coffee(); System.out.println("給我給我來一杯:" + drink.destribe()); System.out.println("您好,價格爲:" + drink.price()); drink = new Sugar(drink); System.out.println("給我來一杯:" + drink.destribe()); System.out.println("您好,價格爲:" + drink.price()); drink = new Ice(drink); System.out.println("給我來一杯:" + drink.destribe()); System.out.println("您好,價格爲:" + drink.price()); drink = new Fruit(drink); System.out.println("給我來一杯:" + drink.destribe()); System.out.println("您好,價格爲:" + drink.price()); System.out.println("-----------------"); drink = new Coco(); System.out.println("給我來一杯:" + drink.destribe()); System.out.println("您好,價格爲:" + drink.price()); drink = new Ice(drink); System.out.println("給我來一杯:" + drink.destribe()); System.out.println("您好,價格爲:" + drink.price()); }console:測試
給我給我來一杯:咖啡 您好,價格爲:8.5 給我來一杯:咖啡 加糖 您好,價格爲:9.0 給我來一杯:咖啡 加糖 加冰 您好,價格爲:9.5 給我來一杯:咖啡 加糖 加冰 加果粒 您好,價格爲:11.0 ----------------- 給我來一杯:可樂 您好,價格爲:3.5 給我來一杯:可樂 加冰 您好,價格爲:4.0