最近打算將經常使用的設計模式學習一下,因此在kindle上下載了「大話設計模式」一書,並在這裏寫了一片文章,用來記錄下本身學習的點滴。一樣該篇文章也是一個學習計劃html
1. 什麼時設計模式?java
設計模式其實時一套被反覆使用,多數人知曉,通過分類的,代碼設計經驗的總結。使用設計模式的主要目的就是爲了可重用代碼,讓代碼更容易被他人理解,同時保證了代碼的可靠性。編程
設計模式的存在使得代碼的編寫真正的工程化。設計模式
2. 設計模式的要求學習
(1) Open Close Principle(開閉原則): 對擴展開放,對修改關閉。這個原則主要是爲了保證程序的良好擴展性,以便代碼更加易於維護和升級。spa
(2) Liskov Substitution Principle(里氏代換原則):全部基類出現的地方,子類必定能夠出現。也就是說全部基類出現的地方都是能夠用子類來進行替代的。這是代碼中繼承與服用的基礎,同時也保證了子類的可擴展性。設計
(3) Dependence Inversion Principle(依賴倒轉原則):對接口進行相關的編程,依賴於抽象,而不是依賴於具體。代理
(4) Interface Segregation Principle(接口隔離原則):在軟件的整體設計中,應該儘可能作到高內聚,低耦合。也就是說爲了下降類之間的耦合度,應該使用多個隔離的接口來實現,避免使用單個的接口。htm
(5) Demeter Principle(迪米特原則):又叫作最少知道原則,也就是說爲了減小實體與實體之間的相互做用,應該儘可能使整個系統的功能模塊相互獨立,減小模塊之間的相互交流。對象
(6) Composite Reuse Principle(合成複用原則):在代碼設計時,儘可能減小繼承的使用,多食用合成以及聚合的方式。
3. 設計模式的分類
構造型模式:生成器模式,工廠方法模式,抽象工廠模式,原型模式,備忘錄模式
接口型模式:適配器模式,外觀模式,組合模式,橋接模式
責任型模式:單例模式,觀察者模式,中介模式,代理模式,享元模式
操做型模式:模板方法模式,狀態模式,策略模式,命令模式,解釋器模式
擴展型模式:裝飾器模式,迭代器模式,訪問者模式
4. 構造型模式
1)生成器模式
。。。。。
2)工廠方法模式,抽象工廠模式
工廠模式常見的有四種:普通工廠模式,工廠方法模式(多工廠模式),靜態工廠方法模式,抽象工廠模式
詳細的介紹請看個人另外一篇文章:http://www.cnblogs.com/dong-liu/p/7489622.html
3)原型模式
。。。。。
4)備忘錄模式
。。。。。
5. 接口型模式
1)適配器模式
。。。。。。
2)外觀模式
。。。。。。
3)組合模式
。。。。。。
4)橋接模式
。。。。。。
6. 責任型模式
1)單例模式
單例模式(Singleton)是java中一個比較常見的設計模式,單例對象主要是爲了保證在一個JVM中,該對象只有一個實例存在。
常見實現單例模式的方法有:餓漢式,懶漢式,靜態內部類,雙檢鎖模式。
詳細細節請看個人另外一篇文章:http://www.cnblogs.com/dong-liu/p/7508505.html
2)觀察者模式
。。。。。。
3)中介模式
。。。。。。
4)代理模式
。。。。。。
5)享元模式
。。。。。。
7. 操做型模式
1)模板方法模式
。。。。。。
2)狀態模式
。。。。。。
3)策略模式
。。。。。。
4)命令模式
。。。。。。
5)解釋器模式
。。。。。。
8. 擴展型模式
1)裝飾器模式
。。。。。。
2)迭代器模式
。。。。。。
3)訪問者模式
。。。。。。