其中一个配料类代码: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