裝飾器模式:動態的將責任附加到物件上,若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。
意圖:將乙個介面轉換為另乙個介面
設計原則:開閉原則(對類的擴充套件開放,對修改關閉)
裝飾器模式設計要點:
1.裝飾者和被裝飾物件有相同的超型別
2.可以用乙個或者多個裝飾者去包裝乙個物件
3.裝飾者可以在所委託被裝飾者的行為之前或者之後,加上自己的行為,已達到特定的目的
/**
* created by administrator on 2017/12/10.
* 飲料類
*/public abstract class beverage
protected abstract double cost();
}
/**
* created by administrator on 2017/12/10.
* 調料裝飾器
*/public abstract class condimentdecorator extends beverage
/**
* created by administrator on 2017/12/10.
*houseblend coffee
*/public class houseblend extends beverage
@override
protected double cost()
}
/**
* created by administrator on 2017/12/10.
* 用mocha去裝飾飲料
*/public class mocha extends condimentdecorator
@override
public string getdesc()
@override
protected double cost()
}
/**
* created by administrator on 2017/12/10.
*/public class testdecorator
}
設計模式(四) 裝飾器模式
首先我們定義drink介面,包含乙個taste方法,返回這個喝的味道怎麼樣 public inte ce drink 然後用tea,實現該介面 public class teaimplements drink 年輕人喜歡在飲料裡面加點果汁,例如 茶 果汁 果茶,就很流行,建立果汁裝飾器類 抽象裝飾器...
設計模式(四) 裝飾模式
裝飾模式又被稱為包裝模式。通過對客戶端透明的方式來拓展物件的功能,是繼承關係的一種替代方案 假設,現在要給qq秀裡的人物設計裝扮衣服,每個人可按自己不同的喜好搭配不同的衣服。先建立person類,它裡面有乙個show 展示 也是穿衣服 的方法 public class person public p...
設計模式 裝飾器模式
裝飾器模式 decorator pattern 允許向乙個現有的物件新增新的功能,同時又不改變其結構。這種型別的設計模式屬於結構型模式,它是作為現有的類的乙個包裝。這種模式建立了乙個裝飾類,用來包裝原有的類,並在保持類方法簽名完整性的前提下,提供了額外的功能。public inte ce playe...