其中一个配料类代码:
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() + " 加果粒 ";
}
测试:
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