裝飾者模式
課題:星巴茲咖啡
beverage:飲料
condiment: 調料
開發-關閉原則:類應該對擴充套件開放,對修改關閉。
定義裝飾者模式
裝飾者模式:動態地將責任附加到物件上。若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。
//飲料抽象類
public abstract class beverage
public abstract double cost();
}//調料抽象類
public abstract class condimentdecorator extends beverage
//具體的飲料類 濃縮咖啡
public class espresso extends beverage
@override
public double cost()
}//具體飲料類
public class houseblend extends beverage
@override
public double cost()
}具體調料裝飾類
public class mocha extends condimentdecorator
@override
public string getdescription()
@override
public double cost()
}public class whip extends condimentdecorator
@override
public string getdescription()
@override
public double cost()
}測試類
public class starbuzzcoffee
}
java裝飾者模式
1 定義 動態地將責任附加到物件上。若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。2 描述 由 抽象構件角色 定義乙個抽象介面,來規範準備附加功能的類 具體構件角色 將要被附加功能的類,實現抽象構件角色介面 抽象裝飾者角色 持有對具體構件角色的引用並定義與抽象構件角色一致的介面 和 具體裝...
java 裝飾者模式
1.裝飾者模式 思想 可以通過裝飾 對原來的功能進行公升級 例如 bufferedoutputstream 傳入的引數是 fileoutputstream 相當於把fileoutputstream裝飾了 裝飾後 功能得到提公升 寫入效率提高 裝飾者模式流程 1 把被裝飾者寫成成員變數 2 構造方法中...
java裝飾者模式
意圖 動態地給乙個物件新增一些額外的職責。就增加功能來說,decorator模式相比生成子類更為靈活。因為參考網上說法都不太一樣,故按照我理解的意思描述下裝飾者模式,以希望給後來者一些稍微的指引 通俗地說就是包裝物件,在不影響其他物件的情況下,動態,透明地給單個物件新增一些功能 裝飾模式就是給乙個物...