設計模式(四) 裝飾器模式

2021-09-02 21:19:11 字數 1188 閱讀 6229

裝飾器模式:動態的將責任附加到物件上,若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。

意圖:將乙個介面轉換為另乙個介面 

設計原則:開閉原則(對類的擴充套件開放,對修改關閉)

裝飾器模式設計要點:

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