史上最全設計模式導學

   聖誕獻禮!   

       2012年-2013年,Sunny在CSDN技術博客中陸續發表了100多篇與設計模式學習相關的文章,涵蓋了七個面向對象設計原則和24個設計模式(23個GoF設計模式 +  簡單工廠模式,爲了方便大家學習,現將所有文章的鏈接進行了整理,希望能給各位帶來幫助!

       祝大家聖誕節快樂微笑 花絮:本文的工作量大大超過之前的估計,幾乎整個平安夜都花在它身上了,大笑

 

基礎知識

 

設計模式概述

從招式與內功談起——設計模式概述(一):設計模式從何而來?

從招式與內功談起——設計模式概述(二):設計模式是什麼?

從招式與內功談起——設計模式概述(三):設計模式有什麼用?附:個人觀點

 

面向對象設計原則

面向對象設計原則概述

面向對象設計原則之單一職責原則

面向對象設計原則之開閉原則

面向對象設計原則之里氏代換原則

面向對象設計原則之依賴倒轉原則

面向對象設計原則之接口隔離原則

面向對象設計原則之合成複用原則

面向對象設計原則之迪米特法則

 

六個創建型模式

 

簡單工廠模-Simple Factory Pattern【學習難度:★★☆☆☆,使用頻率:★★★☆☆

工廠三兄弟之簡單工廠模式(一):圖表庫的設計

工廠三兄弟之簡單工廠模式(二):簡單工廠模式概述

工廠三兄弟之簡單工廠模式(三):圖表庫的簡單工廠模式解決方案

工廠三兄弟之簡單工廠模式(四):圖表庫解決方案的改進,簡單工廠模式的簡化,簡單工廠模式總結

 

工廠方法模式-Factory Method Pattern【學習難度:★★☆☆☆,使用頻率:★★★★★

工廠三兄弟之工廠方法模式(一):日誌記錄器的設計

工廠三兄弟之工廠方法模式(二):工廠方法模式概述

工廠三兄弟之工廠方法模式(三):日誌記錄器的工廠方法模式解決方案,反射與配置文件

工廠三兄弟之工廠方法模式(四):重載的工廠方法,工廠方法的隱藏,工廠方法模式總結

 

抽象工廠模式-Abstract  Factory Pattern【學習難度:★★★★☆,使用頻率:★★★★★

工廠三兄弟之抽象工廠模式(一):界面皮膚庫的初始設計

工廠三兄弟之抽象工廠模式(二):產品等級結構與產品族

工廠三兄弟之抽象工廠模式(三):抽象工廠模式概述

工廠三兄弟之抽象工廠模式(四):界面皮膚庫的抽象工廠模式解決方案

工廠三兄弟之抽象工廠模式(五):“開閉原則”的傾斜性,抽象工廠模式總結

 

單例模式-Singleton Pattern【學習難度:★☆☆☆☆,使用頻率:★★★★☆

確保對象的唯一性——單例模式 (一):單例模式的動機,單例模式概述

確保對象的唯一性——單例模式 (二):負載均衡器的設計與實現

確保對象的唯一性——單例模式 (三):餓漢式單例與懶漢式單例的討論

確保對象的唯一性——單例模式 (四):一種更好的單例實現方法(靜態內部類)

確保對象的唯一性——單例模式 (五):單例模式總結

 

原型模式-Prototype Pattern【學習難度:★★★☆☆,使用頻率:★★★☆☆

對象的克隆——原型模式(一):大同小異的工作週報,原型模式概述

對象的克隆——原型模式(二):工作週報的原型模式解決方案

對象的克隆——原型模式(三):帶附件的週報【淺克隆,深克隆】

對象的克隆——原型模式(四):原型管理器的引入和實現,原型模式總結

 

建造者模式-Builder Pattern【學習難度:★★★★☆,使用頻率:★★☆☆☆

複雜對象的組裝與創建——建造者模式(一):遊戲角色設計,建造者模式概述

複雜對象的組裝與創建——建造者模式(二):遊戲角色設計的建造者模式解決方案

複雜對象的組裝與創建——建造者模式(三):關於Director的進一步討論,建造者模式總結

 

七個結構型模式

 

適配器模式-Adapter Pattern【學習難度:★★☆☆☆,使用頻率:★★★★☆

不兼容結構的協調——適配器模式(一):沒有源碼的算法庫,適配器模式概述

不兼容結構的協調——適配器模式(二):沒有源碼的算法庫的適配器模式解決方案

不兼容結構的協調——適配器模式(三):類適配器,雙向適配器

不兼容結構的協調——適配器模式(四):缺省適配器,適配器模式總結


橋接模式-Bridge Pattern【學習難度:★★★☆☆,使用頻率:★★★☆☆

處理多維度變化——橋接模式(一):跨平臺圖像瀏覽系統

處理多維度變化——橋接模式(二):橋接模式概述

處理多維度變化——橋接模式(三):跨平臺圖像瀏覽系統的橋接模式解決方案

處理多維度變化——橋接模式(四):適配器模式與橋接模式的聯用,橋接模式總結


組合模式-Composite Pattern【學習難度:★★★☆☆,使用頻率:★★★★☆

樹形結構的處理——組合模式(一):設計殺毒軟件的框架結構

樹形結構的處理——組合模式(二):組合模式概述

樹形結構的處理——組合模式(三):殺毒軟件的框架結構的組合模式解決方案

樹形結構的處理——組合模式(四):透明組合模式與安全組合模式

樹形結構的處理——組合模式(五):公司組織結構,組合模式總結


裝飾模式-Decorator Pattern【學習難度:★★★☆☆,使用頻率:★★★☆☆

擴展系統功能——裝飾模式(一):圖形界面構件庫的設計

擴展系統功能——裝飾模式(二):裝飾模式概述

擴展系統功能——裝飾模式(三):圖形界面構件庫的裝飾模式解決方案

擴展系統功能——裝飾模式(四):透明裝飾模式與半透明裝飾模式,裝飾模式注意事項,裝飾模式總結


外觀模式-Facade Pattern【學習難度:★☆☆☆☆,使用頻率:★★★★★

深入淺出外觀模式(一):外觀模式概述,外觀模式結構與實現

深入淺出外觀模式(二):外觀模式應用實例(文件加密模塊)

深入淺出外觀模式(三):抽象外觀類,外觀模式效果與適用場景


享元模式-Flyweight Pattern【學習難度:★★★★☆,使用頻率:★☆☆☆☆

實現對象的複用——享元模式(一):圍棋棋子的設計,享元模式概述(上)

實現對象的複用——享元模式(二):享元模式概述(下)

實現對象的複用——享元模式(三):圍棋棋子的享元模式解決方案

實現對象的複用——享元模式(四):帶外部狀態的圍棋棋子解決方案

實現對象的複用——享元模式(五):單純享元模式和複合享元模式,關於享元模式的幾點補充,享元模式總結


代理模式-Proxy Pattern【學習難度:★★★☆☆,使用頻率:★★★★☆

代理模式(一):代理模式概述,代理模式結構與實現

代理模式(二):代理模式應用實例(收費商務信息查詢系統)

代理模式(三):遠程代理,虛擬代理,緩衝代理

代理模式(四):代理模式效果與適用場景


十一個行爲型模式

 

職責鏈模式-Chain of Responsibility Pattern【學習難度:★★★☆☆,使用頻率:★★☆☆☆

請求的鏈式處理——職責鏈模式(一):採購單的分級審批

請求的鏈式處理——職責鏈模式(二):職責鏈模式概述

請求的鏈式處理——職責鏈模式(三):採購單分級審批的職責鏈模式解決方案

請求的鏈式處理——職責鏈模式(四):純與不純的職責鏈模式,職責鏈模式總結


命令模式-Command Pattern【學習難度:★★★☆☆,使用頻率:★★★★☆

請求發送者與接收者解耦——命令模式(一):自定義功能鍵,命令模式概述

請求發送者與接收者解耦——命令模式(二):自定義功能鍵的命令模式解決方案

請求發送者與接收者解耦——命令模式(三):命令隊列的實現

請求發送者與接收者解耦——命令模式(四):撤銷操作的簡單實現

請求發送者與接收者解耦——命令模式(五):請求日誌

請求發送者與接收者解耦——命令模式(六):宏命令,命令模式總結


解釋器模式-Interpreter Pattern【學習難度:★★★★★,使用頻率:★☆☆☆☆

自定義語言的實現——解釋器模式(一):機器人控制程序

自定義語言的實現——解釋器模式(二):文法規則和抽象語法樹

自定義語言的實現——解釋器模式(三):解釋器模式概述

自定義語言的實現——解釋器模式(四):機器人控制程序的解釋器模式解決方案

自定義語言的實現——解釋器模式(五):再談Context的作用

自定義語言的實現——解釋器模式(六):解釋器模式總結


迭代器模式-Iterator Pattern【學習難度:★★★☆☆,使用頻率:★★★★★

遍歷聚合對象中的元素——迭代器模式(一):銷售管理系統中數據的遍歷

遍歷聚合對象中的元素——迭代器模式(二):迭代器模式概述

遍歷聚合對象中的元素——迭代器模式(三):銷售管理系統中數據的遍歷的迭代器模式解決方案

遍歷聚合對象中的元素——迭代器模式(四):使用內部類實現迭代器

遍歷聚合對象中的元素——迭代器模式(五):JDK內置迭代器的使用

遍歷聚合對象中的元素——迭代器模式(六):迭代器模式總結


中介者模式-Mediator Pattern【學習難度:★★★☆☆,使用頻率:★★☆☆☆

協調多個對象之間的交互——中介者模式(一):客戶信息管理窗口的初始設計

協調多個對象之間的交互——中介者模式(二):中介者模式概述

協調多個對象之間的交互——中介者模式(三):客戶信息管理窗口的中介者模式解決方案

協調多個對象之間的交互——中介者模式(四):中介者與同事類的擴展

協調多個對象之間的交互——中介者模式(五):中介者模式總結


備忘錄模式-Memento Pattern【學習難度:★★☆☆☆,使用頻率:★★☆☆☆

撤銷功能的實現——備忘錄模式(一):可悔棋的中國象棋

撤銷功能的實現——備忘錄模式(二):備忘錄模式概述

撤銷功能的實現——備忘錄模式(三):中國象棋的備忘錄模式解決方案

撤銷功能的實現——備忘錄模式(四):實現多次撤銷

撤銷功能的實現——備忘錄模式(五):再談備忘錄的封裝,備忘錄模式總結


觀察者模式-Observer Pattern【學習難度:★★★☆☆,使用頻率:★★★★★

對象間的聯動——觀察者模式(一):多人聯機對戰遊戲的設計

對象間的聯動——觀察者模式(二):觀察者模式概述

對象間的聯動——觀察者模式(三):多人聯機對戰遊戲的觀察者模式解決方案

對象間的聯動——觀察者模式(四):JDK對觀察者模式的支持

對象間的聯動——觀察者模式(五):觀察者模式與Java事件處理

對象間的聯動——觀察者模式(六):觀察者模式與MVC,觀察者模式總結


狀態模式-State Pattern【學習難度:★★★☆☆,使用頻率:★★★☆☆

處理對象的多種狀態及其相互轉換——狀態模式(一):銀行系統中的賬戶類設計

處理對象的多種狀態及其相互轉換——狀態模式(二):狀態模式概述

處理對象的多種狀態及其相互轉換——狀態模式(三):賬戶類的狀態模式解決方案

處理對象的多種狀態及其相互轉換——狀態模式(四):共享狀態的實現

處理對象的多種狀態及其相互轉換——狀態模式(五):使用環境類實現狀態轉換

處理對象的多種狀態及其相互轉換——狀態模式(六):狀態模式總結


策略模式-Strategy Pattern【學習難度:★☆☆☆☆,使用頻率:★★★★☆

算法的封裝與切換——策略模式(一):電影票打折方案

算法的封裝與切換——策略模式(二):策略模式概述

算法的封裝與切換——策略模式(三):電影票打折方案的策略模式解決方案

算法的封裝與切換——策略模式(四):策略模式的兩個典型應用,策略模式總結


模板方法模式-Template Method Pattern【學習難度:★★☆☆☆,使用頻率:★★★☆☆

模板方法模式深度解析(一):模板方法模式概述,模板方法模式結構與實現

模板方法模式深度解析(二):模板方法模式應用實例(銀行利息計算模塊)

模板方法模式深度解析(三):鉤子方法的使用,模板方法模式效果與適用場景


訪問者模式-Visitor Pattern【學習難度:★★★★☆,使用頻率:★☆☆☆☆

操作複雜對象結構——訪問者模式(一):OA系統中員工數據彙總

操作複雜對象結構——訪問者模式(二):訪問者模式概述

操作複雜對象結構——訪問者模式(三):OA系統中員工數據彙總的訪問者模式解決方案

操作複雜對象結構——訪問者模式(四):訪問者模式與組合模式聯用,訪問者模式總結


設計模式趣味學習(複習)


設計模式與足球(一):創建型模式

設計模式與足球(二):結構型模式

設計模式與足球(三):行爲型模式(上)

設計模式與足球(四):行爲型模式(下)


設計模式綜合應用實例


多人聯機射擊遊戲

多人聯機射擊遊戲中的設計模式應用(一):抽象工廠模式,建造者模式,工廠方法模式,迭代器模式,命令模式

多人聯機射擊遊戲中的設計模式應用(二):觀察者模式,單例模式,狀態模式,適配器模式


數據庫同步系統

設計模式綜合實例分析之數據庫同步系統(一):數據庫同步系統概述,建造者模式,簡單工廠模式

設計模式綜合實例分析之數據庫同步系統(二):享元模式,單例模式,觀察者模式,模板方法模式

設計模式綜合實例分析之數據庫同步系統(三):策略模式,組合模式,命令模式,職責鏈模式


友情提示:請尊重作者勞動成果,如需轉載本博客文章請註明出處!謝謝合作!微笑


【作者:劉偉  http://blog.csdn.net/lovelion

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章