java裝飾者模式

2021-06-08 11:41:18 字數 1661 閱讀 8505

1、定義

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

2、描述 由

抽象構件角色(定義乙個抽象介面,來規範準備附加功能的類)

具體構件角色

(將要被附加功能的類,實現抽象構件角色介面)、

抽象裝飾者角色

(持有對具體構件角色的引用並定義與抽象構件角色一致的介面)和

具體裝飾角色

(實現抽象裝飾者角色,負責為具體構件新增額外功能)組成。

3、uml類圖

4、demo

/**  

* 裝飾者和組建的共同方法介面(抽象構件角色)

*/

inte***ce component

/**

* 元件(具體構件角色)

*/

class concretecomponent implements component

}

/**

* 抽象裝飾者

*/

abstract class decorator implements component

/**

* 元件方法執行前預處理方法

*/

protected void predo(){};

/**

* 元件方法執行後處理方法

*/

protected void afterdo(){};

public void justdoit();

}

/**

* 具體裝飾者

*/

class concretedecorator1 extends decorator

/**

* 根據需要過載模板類presay()方法

*/

protected void predo()

/**

* 根據需要過載模板類aftersay()方法

*/

protected void afterdo()

}

/**

* 裝飾者

*/

class concretedecorator2 extends decorator

/**

* 根據需要過載模板類presay()方法

*/

protected void predo()

/**

* 根據需要過載模板類aftersay()方法

*/

protected void afterdo()

}public class decoratorgenerater

}

5、io類的裝飾者模式實現

java 裝飾者模式

1.裝飾者模式 思想 可以通過裝飾 對原來的功能進行公升級 例如 bufferedoutputstream 傳入的引數是 fileoutputstream 相當於把fileoutputstream裝飾了 裝飾後 功能得到提公升 寫入效率提高 裝飾者模式流程 1 把被裝飾者寫成成員變數 2 構造方法中...

Java 裝飾者模式

裝飾者模式 課題 星巴茲咖啡 beverage 飲料 condiment 調料 開發 關閉原則 類應該對擴充套件開放,對修改關閉。定義裝飾者模式 裝飾者模式 動態地將責任附加到物件上。若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。飲料抽象類 public abstract class be...

java裝飾者模式

意圖 動態地給乙個物件新增一些額外的職責。就增加功能來說,decorator模式相比生成子類更為靈活。因為參考網上說法都不太一樣,故按照我理解的意思描述下裝飾者模式,以希望給後來者一些稍微的指引 通俗地說就是包裝物件,在不影響其他物件的情況下,動態,透明地給單個物件新增一些功能 裝飾模式就是給乙個物...