設計模式之裝飾者模式

2021-10-03 02:34:46 字數 1363 閱讀 4926

裝飾者模式主要作用是對物件的功能進行擴充套件,而擴充套件方法有兩種,一是派生子類,二是裝飾者模式

派生子類的存在問題

裝飾者模式的優勢

裝飾者模式的要求

**實現:

用於規範的介面類

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 ...