路一步步走>> 設計模式九:Decorator-裝飾
package com.test.DPs.JieGou.Decorator; /** * 結構型:Decorator-裝飾 裝飾:作用面為 物件 * * 用途:動態地給一個物件新增一些額外的職責。 * 理解:參考代理類 * 代理類:控制舊類物件的訪問和輸出結果 * 裝飾類:對(舊類)物件新增額外職責 */ interface Source{ void method();} public class Decorator implements Source{ private Source source; public void decorate1(){ System.out.println("decorate"); } @Override public void method(){ decorate1(); source.method(); } }
相關推薦
路一步步走>> 設計模式九:Decorator-裝飾
package com.test.DPs.JieGou.Decorator; /** * 結構型:Decorator-裝飾 裝飾:作用面為 物件 * * 用途:動態地給一個物件新增一些額外的職責。 * 理解:參考代理類 * 代理類:控制舊類物件的訪問和輸出結果 * 裝飾類:對
路一步步走>> 設計模式三:Builder-建造者(生成器)
package com.test.DPs.ChuangJian.Builder; /** * 建立型:Builder-建造者(生成器) */ public class Builder{ static class Student{ String name = null; Strin
路一步步走>> 設計模式十:Facade-外觀
package com.test.DPs.JieGou.Facade; /** * 結構型:Facade-外觀 外觀:作用面為 物件 * * 用途:為子系統的一組介面提供一個一致的介面,Facade模式定義了一個高層介面,使子系統便捷實用。 */ public class Facad
路一步步走>> 設計模式二十:State-狀態
package com.test.DPs.XingWei.State; /** * 行為型:State-狀態 外觀:作用面為 物件 * * 用途:允許一個物件在其內部狀態改變時改變它的行為。物件看起來改變它的類。 * * 理解:通過狀態改變(觸發、開關)行為;(狀態可主動) *
路一步步走>> 設計模式十九:Observer-觀察者
package com.test.DPs.XingWei.Observer; import java.util.Enumeration; import java.util.Vector; /** * 行為型:Observer-觀察者 外觀:作用面為 物件 */ interface Ob
路一步步走>> 設計模式十八:Memento-備忘錄
package com.test.DPs.XingWei.Memento; /** * 行為型:Memento-備忘錄 外觀:作用面為 物件 */ class Original{ private String value; public String getValue(){ ret
路一步步走>> 設計模式十七:Mediator-中介者
package com.test.DPs.XingWei.Mediator; /** * 行為型:Mediator-中介者 外觀:作用面為 物件 * * 用途:用一箇中介物件來封裝一系列的物件互動。 * 中介者使個物件不需要顯示的相互引用,從而使其耦合鬆散,而且可獨立改變它們
路一步步走>> 設計模式十六:Iterator-迭代器
package com.test.DPs.XingWei.Iterator; /** * 行為型:Iterator-迭代器 外觀:作用面為 物件 * * 用途:提供一種方法順序訪問一個聚合物件中各個元素,而又不需要暴露該物件的內部表示。 * 理解:一是需要遍歷的物件,即聚集物件,
路一步步走>> 設計模式十五:Interpreter-直譯器
package com.test.DPs.XingWei.Interpreter; /** * 行為型:Interpreter-直譯器 外觀:作用面為類 * * 用途:給定一種語言(物件),定義它的文法的一種表示(物件型別),定義一個直譯器,這個解釋其使用該表示來解釋語言中的句子。
路一步步走>> 設計模式十四:Command-命令
package com.test.DPs.XingWei.Command; /** * 行為型:Command-命令 外觀:作用面為 物件 * * 用途:將一個請求封裝為一個物件,從而使你可用不同的請求對客戶進行引數化; * 將請求排隊或記錄請求日誌,以及支援可撤銷操作。
路一步步走>> 設計模式十三:Chain of Responsibility-責任鏈
package com.test.DPs.XingWei.ChainOfResponsibility; /** * 行為型:Chain of Responsibility-責任鏈 外觀:作用面為 物件 */ interface Handler{ void operator(); } ab
路一步步走>> 設計模式十二:Proxy-代理
package com.test.DPs.JieGou.Porxy; /** * 結構型:Porxy-代理 代理:作用面為 物件 */ interface Source{ void method();} class oldClass implements Source{ @Overri
路一步步走>> 設計模式十一:FlyWeight-享元
package com.test.DPs.JieGou.FlyWeight; import java.util.HashMap; /** * 結構型:FlyWeight-享元 橋接:作用面為 物件 * * 用途:運用共享技術,有效地支援大量細粒度物件。 */ abstract c
路一步步走>> 設計模式八:Composite-組合
package com.test.DPs.JieGou.Composite; /** * 結構型:Composite-組合 組合:作用面為 物件 * * 用途:將物件組合成樹形結構以表示“部分-整體”的層次結構。Composite使得使用者對單個物件和組合物件的使用具有一致性。 *
路一步步走>> 設計模式七:橋接-Bridge
理解的不是很深 。用到在看。 package com.test.DPs.JieGou.Bridge; /** * 結構型:Bridge-橋接 橋接:作用面為 物件 * * 用途:將抽象部分與它的實現部分分離,使它們都可以獨立的變化。 */ interface DrawA
路一步步走>> 設計模式六:Adapter-介面卡
package com.test.DPs.JieGou.Adapter; /** * 結構型:Adapter-介面卡 介面卡:作用面為 類+介面 * * 用途: * 將一個類的藉口轉換成客戶希望的另外一個介面。使得原本由於介面不相容而不能一起工作類可一同工作。 * * 理解:
路一步步走>> 設計模式五:Singleton-單例(單件)
package com.test.DPs.ChuangJian.Singleton; /** * 建立型:Singleton-單例(單件) * * 單例模式-Singleton * 用途:保證一個類僅有一個例項,並提供一個訪問他的全域性訪問點。 */ public class Si
路一步步走>> 設計模式四:Prototype-原型
package com.test.DPs.ChuangJian.Prototype; /** * 建立型:Prototype-原型 */ public class Prototype implements Cloneable{ private String name; public S
路一步步走>> 設計模式二:FactoryMethod-工廠方法
package com.test.DPs.ChuangJian.FactoryMethod; /** * 建立型:FactoryMethod-工廠方法 */ interface food{} class A implements food{} class B implements foo
路一步步走>> 設計模式一:AbstractFactory-抽象工廠
1. 還是自己打打程式碼容易理解。 2. 把概念抽象為類,一個不夠,再加一個,再加一個,再加... 3. 學習設計模式,先著手建立型模式,然後行為模式,再然後結構型模式。由簡入繁,不容易枯燥放棄。 package com.test.DPs.ChuangJian.Abstr