話不多說,直接上**
/**
* 被裝飾者類
* @author 陽尚俊
* */
public inte***ce human
/** * 被裝飾者的具體實現類
* @author waf
* */
public class person implements human
}/**
* 裝飾者抽象類
* @author waf
* */
public abstract class decorator implements human
public void wearcloth()
}/**
* 具體裝飾者類 0
* @author waf
* */
public class decorator_zero extends decorator
public void wearcloth() }
/** * 具體裝飾者類 2
* @author waf
* */
public class decorator_two extends decorator
@override
public void wearcloth()
}/**
* 具體裝飾者類 3
* @author waf
* */
public class decorator_three extends decorator
@override
public void wearcloth()
}/**
* 測試類
* @author waf
* */
public class test
}
通過以上設計不難看出,其實裝飾者模式的初衷就是為了解決對一類事物進行逐步修飾點綴的問題,通過常規的繼承方式實現
會存在生成我多個類的繁雜事情,而這種模式完美的解決了以上問題,通過乙個共有的裝飾者抽象類,將被裝飾者的介面通過構造器傳入,
public decorator_zero(human human)
然而所有的裝飾者類都是實現了我們的human介面,所以每次在建立具體裝飾者的時候都可以把其他具體裝飾者通過構造器傳入
,這樣super.wearcloth()都是層層呼叫,最後傳入介面實現物件就大功告成!
感覺自己理解的也不是很深刻,希望大家多多指教。
執行結果:
光著身體穿衣穿上了鞋字穿靴子
java裝飾者模式
1 定義 動態地將責任附加到物件上。若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。2 描述 由 抽象構件角色 定義乙個抽象介面,來規範準備附加功能的類 具體構件角色 將要被附加功能的類,實現抽象構件角色介面 抽象裝飾者角色 持有對具體構件角色的引用並定義與抽象構件角色一致的介面 和 具體裝...
java 裝飾者模式
1.裝飾者模式 思想 可以通過裝飾 對原來的功能進行公升級 例如 bufferedoutputstream 傳入的引數是 fileoutputstream 相當於把fileoutputstream裝飾了 裝飾後 功能得到提公升 寫入效率提高 裝飾者模式流程 1 把被裝飾者寫成成員變數 2 構造方法中...
Java 裝飾者模式
裝飾者模式 課題 星巴茲咖啡 beverage 飲料 condiment 調料 開發 關閉原則 類應該對擴充套件開放,對修改關閉。定義裝飾者模式 裝飾者模式 動態地將責任附加到物件上。若要擴充套件功能,裝飾者提供了比繼承更有彈性的替代方案。飲料抽象類 public abstract class be...