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