裝飾者模式主要作用是對物件的功能進行擴充套件,而擴充套件方法有兩種,一是派生子類,二是裝飾者模式派生子類的存在問題
裝飾者模式的優勢
裝飾者模式的要求
**實現:
用於規範的介面類
package com.heiheihei.pojo;
/** * @author 嘿嘿嘿1212
* @version 1.0
* @date 2020/2/21 20:34
*/public
inte***ce
chicken
被裝飾者類
package com.heiheihei.pojo;
/** * @author 嘿嘿嘿1212
* @version 1.0
* @date 2020/2/21 20:38
* 被修飾類
*/public
class
eatchicken
implements
chicken
}
修飾者類
package com.heiheihei.pojo;
/** * @author 嘿嘿嘿1212
* @version 1.0
* @date 2020/2/21 20:41
* 修飾者類
*/public
class
eatchickenmodify
implements
chicken
public
eatchickenmodify
(chicken estchicken)
public
void
get(
)}
測試類
package com.heiheihei.pojo;
/** * @author 嘿嘿嘿1212
* @version 1.0
* @date 2020/2/21 20:47
*/public
class
eatchickentest
}
結果
動態的擴充套件了eatchicken例項的功能,並且耦合較低
設計模式之 裝飾者模式
一 裝飾者模式 裝飾者模式又稱為包裝模式。動態地給乙個物件增加新的職責。若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。裝飾者模式顧名思義就是對乙個物件進行裝飾,具體怎樣裝飾呢?那就是給這個物件不斷的增加職責方法。給乙個物件增加方法不簡單啊,用繼承或者直接在物件的類中增加方法。如果我們要對自...
設計模式之裝飾者模式
此模式動態將職責附加到物件上,若要擴充套件功能,裝飾者提供了比繼承更具彈性的代替方案,以一圖一概括。要點1 裝飾者和被裝飾物件有相同的超型別。2 可以用乙個或多個裝飾者包裝乙個物件。3 裝飾者可以在所委託被裝飾者的行為之前或之後,加上自己的行為,以達到特定的目的。4 物件可以在任何時候被裝飾,所以可...
設計模式之裝飾者模式
public abstract class beverage 返回當前飲品的 public abstract double cost 為了讓condiment decorator 調料裝飾者 能夠取代beverage,所以將它擴充套件至beverage類 public abstract class ...