設計模式的初步認識
http://blog.csdn.net/zhangerqing/article/details/8194653/
http://www.cnblogs.com/java-my-life/archive/2012/03/28/2418836.html
看了上面2篇文章, 對設計模式有了一個初步簡單的了解,把自己很膚淺的理解寫在下面,當作索引以後學習回顧
創建型 | Factory (工廠模式) |
Singleton (單例模式) | |
結構型 | Adapter (適配器模式) |
Decorator (裝飾器模式) | |
Proxy (代理模式) | |
Fa?ade (外觀模式) | |
Bridge (橋接模式) | |
Composite (組合模式) | |
Flyweight (享元模式) | |
行為型 | Strategy (策略模式) |
Template (模板方法) | |
Observice (觀察者模式) | |
Iterator (叠代子模式) | |
Chain of Responsibily (責任鏈模式) | |
Command (命令模式) | |
Memento (備忘錄模式) | |
State (狀態模式) | |
Visitor (訪問者模式) | |
Mediator (中介者) | |
Interprefer (觸發器) |
Adapter (適配器模式) 對類: public class Adapter extends Source implements Targetable
對象:和對類的模式相同, 但不繼承Source類, 在對象中調用另一個對象 (Source作為構造器參數傳入Adapter)
對接口:abstract實現interface中所有抽象方法, 實現類只需要繼承abstract即可, 可以自由的選擇需要的部分方法, 不需要重寫所有方法
Decorator (裝飾器模式) : 對原方法進行擴展, 擴展前後需要實現同一個接口, 保持方法名的相同. 原類存在擴展類的構造參數中
Proxy (代理模式) : 對原類進行擴展, 原類存在擴展類的構造參數中, 使用權交給Proxy類. 對原類可以進行更加復雜的組裝, 相比Decorator更加靈活
Fa?ade (外觀模式) : 配置類之間的關系, 有點像主板, 對各個相互依賴的類進行組裝以實現一個特定的功能
Bridge (橋接模式) : 動態的選擇使用類, MyBridge中實現了具體功能, 但其所需的驅動類需要根據具體使用者選擇不同的類, 為此定義了一個interface, 在Mybridge中調用這個接口進行模擬。 由Bridge實現動態的註入interface的具體實現類, public class MyBridge extends abstract Bridge。(工廠模式的創建需要顯式的知道接口的具體名稱, 但橋接模式並不需要, 通過set方法實現)
Composite (組合模式) : 遞歸調用, 樹結構的實現
Flyweight (享元模式) :
Strategy (策略模式) : public abstract class AbstractCalculator; public class Plus extends AbstractCalculator implements ICalculator; 借助輔助類實現接口
Template (模板方法) : public class Plus extends AbstractCalculator ; AbstractCalculator 集成共同算法(實現, 功能), 讓其子類重寫具體的算法實現。給一個模板, 子類繼承後重寫個性化的內容
Observice (觀察者模式) : 在被觀察者類中存儲觀察者屬性, + 策略模式, 借助策略模式中的輔助類, 在輔助類中添加觀察者屬性, 在需要的時候notifyAll
Iterator (叠代子模式) : 集合容器的接口中定義對Iterator接口的調用, 具體的集合容器實現類需要把自身的引用傳給實現Iterator的類, 這個類需要和對應的集合容器匹配
Chain of Responsibily (責任鏈模式) : 同一個時刻, 命令只允許一個對象傳遞給另一個對象, 和組合模式不同
Command (命令模式) : 一層一層 (任務的細化分工), 每一層只需將自己的任務分配或同時完成少量工作, 具體的任務實現交由下一層管理, 下一層再重復這套動作, 直到命令完成
Memento (備忘錄模式) : 原始類中需要有創建備忘錄的方法, 創建一個備忘錄對象交由另一個對象存儲管理
State (狀態模式) : 狀態的改變, 對應調用的方法也要改變
Visitor (訪問者模式) : 被訪問者擁有訪問者的使用權限, 在被訪問者中定義一個方法傳遞自身引用給訪問者, 訪問者想要訪問被訪問者(獲得被訪問者的對象引用), 只能通過被訪問者調用, 訪問者的權限由被訪問者管理
Mediator (中介者) : 第三方類組合其它類
Interprefer (觸發器) : (對數據的存儲)
設計模式的初步認識