設計模式之裝飾模式

其中一個配料類代碼: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
相關文章
相關標籤/搜索