初探設計模式 裝飾者模式 ,在I O中的身影

2021-10-03 02:34:47 字數 1195 閱讀 7698

初次學習,如有謬論請不吝斧正。
組合的威力是強大的,可以在執行時動態擴充套件而不改變原來的功能。

第四個設計原則:類應該對擴充套件開放,對修改關閉

應用這個原則通常會引入新的抽象層次,過多的引入會使**複雜度增加。

裝飾者模式:動態的將責任附加到物件身上

首先引入乙個抽象層次,針對抽象類程式設計
public

abstract

class

beverage

public

abstract

double

cost()

;}

裝飾者和被裝飾者都繼承這個抽象類,也就實現了「型別匹配」,依靠這個超類 裝飾者就能取代(包含)被裝飾者,

行為來自被裝飾者和組合它的裝飾者們,這樣 新增裝飾者元件就可以新增行為

被裝飾者

public

class

espress

extends

beverage

public

double

cost()

}

裝飾者抽象類(封裝變化,面向超型別程式設計)
public

abstract

class

condimentdecorator

extends

beverage

寫乙個具體的裝飾者元件
public

class

mocha

extends

condimentdecorator

public string getdescription()

public

double

cost()

}

測試**

方法的呼叫權先一步步委託到被裝飾者再不斷回溯。

public

class

starbuzz coffee

}

IO 裝飾設計模式

public class voice public voice int voice public int getvoice public void setvoice int voice public void say 擴音器 類與類之間的關係 1 依賴 形參 區域性變數 2 關聯 屬性 聚合 屬性整...

IO 裝飾設計模式

四部分組成 1 抽象元件 需裝飾的抽象物件 介面或抽象父類 2 具體元件 需要裝飾的物件 3 抽象裝飾類 包含了對抽象元件的引用以及裝飾著共有的方法 4 具體裝飾類 被裝飾的物件 示例 模擬咖啡 public class decorate02 1 抽象元件 inte ce drink 2 具體元件 ...

設計模式 裝飾者模式

public abstract class beverage public abstract double cost public abstract class condimentdecorator extends beverage public class darkroast extends be...