設計模式資料大全

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

一、基礎知識

1、設計模式概述

從招式與內功談起——設計模式概述(一):設計模式從何而來?
從招式與內功談起——設計模式概述(二):設計模式是什么?
從招式與內功談起——設計模式概述(三):設計模式有什么用?

2、面向對象設計原則

面向對象設計原則概述
面向對象設計原則之單一職責原則
面向對象設計原則之開閉原則
面向對象設計原則之里氏代換原則
面向對象設計原則之依賴倒轉原則
面向對象設計原則之接口隔離原則
面向對象設計原則之合成復用原則
面向對象設計原則之迪米特法則

二、六個創建型模式

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

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

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

工廠三兄弟之工廠方法模式(一):日志記錄器的設計
工廠三兄弟之工廠方法模式(二):工廠方法模式概述
工廠三兄弟之工廠方法模式(三):日志記錄器的工廠方法模式解決方案,反射與配置文件
工廠三兄弟之工廠方法模式(四):重載的工廠方法,工廠方法的隱藏,工廠方法模式總結

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

工廠三兄弟之抽象工廠模式(一):界面皮膚庫的初始設計
工廠三兄弟之抽象工廠模式(二):產品等級結構與產品族
工廠三兄弟之抽象工廠模式(三):抽象工廠模式概述
工廠三兄弟之抽象工廠模式(四):界面皮膚庫的抽象工廠模式解決方案
工廠三兄弟之抽象工廠模式(五):“開閉原則”的傾斜性,抽象工廠模式總結

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

確保對象的唯一性——單例模式 (一):單例模式的動機,單例模式概述
確保對象的唯一性——單例模式 (二):負載均衡器的設計與實現
確保對象的唯一性——單例模式 (三):餓漢式單例與懶漢式單例的討論
確保對象的唯一性——單例模式 (四):一種更好的單例實現方法(靜態內部類)
確保對象的唯一性——單例模式 (五):單例模式總結

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

對象的克隆——原型模式(一):大同小異的工作周報,原型模式概述
對象的克隆——原型模式(二):工作周報的原型模式解決方案
對象的克隆——原型模式(三):帶附件的周報【淺克隆,深克隆】
對象的克隆——原型模式(四):原型管理器的引入和實現,原型模式總結

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

復雜對象的組裝與創建——建造者模式(一):游戲角色設計,建造者模式概述
復雜對象的組裝與創建——建造者模式(二):游戲角色設計的建造者模式解決方案
復雜對象的組裝與創建——建造者模式(三):關于Director的進一步討論,建造者模式總結

三、七個結構型模式

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

不兼容結構的協調——適配器模式(一):沒有源碼的算法庫,適配器模式概述
不兼容結構的協調——適配器模式(二):沒有源碼的算法庫的適配器模式解決方案
不兼容結構的協調——適配器模式(三):類適配器,雙向適配器
不兼容結構的協調——適配器模式(四):缺省適配器,適配器模式總結

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

處理多維度變化——橋接模式(一):跨平臺圖像瀏覽系統
處理多維度變化——橋接模式(二):橋接模式概述
處理多維度變化——橋接模式(三):跨平臺圖像瀏覽系統的橋接模式解決方案
處理多維度變化——橋接模式(四):適配器模式與橋接模式的聯用,橋接模式總結

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

樹形結構的處理——組合模式(一):設計殺毒軟件的框架結構
樹形結構的處理——組合模式(二):組合模式概述
樹形結構的處理——組合模式(三):殺毒軟件的框架結構的組合模式解決方案
樹形結構的處理——組合模式(四):透明組合模式與安全組合模式
樹形結構的處理——組合模式(五):公司組織結構,組合模式總結

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

擴展系統功能——裝飾模式(一):圖形界面構件庫的設計
擴展系統功能——裝飾模式(二):裝飾模式概述
擴展系統功能——裝飾模式(三):圖形界面構件庫的裝飾模式解決方案
擴展系統功能——裝飾模式(四):透明裝飾模式與半透明裝飾模式,裝飾模式注意事項,裝飾模式總結

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

深入淺出外觀模式(一):外觀模式概述,外觀模式結構與實現
深入淺出外觀模式(二):外觀模式應用實例(文件加密模塊)
深入淺出外觀模式(三):抽象外觀類,外觀模式效果與適用場景

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

實現對象的復用——享元模式(一):圍棋棋子的設計,享元模式概述(上)
實現對象的復用——享元模式(二):享元模式概述(下)
實現對象的復用——享元模式(三):圍棋棋子的享元模式解決方案
實現對象的復用——享元模式(四):帶外部狀態的圍棋棋子解決方案
實現對象的復用——享元模式(五):單純享元模式和復合享元模式,關于享元模式的幾點補充,享元模式總結

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

代理模式(一):代理模式概述,代理模式結構與實現
代理模式(二):代理模式應用實例(收費商務信息查詢系統)
代理模式(三):遠程代理,虛擬代理,緩沖代理
代理模式(四):代理模式效果與適用場景

四、十一個行為型模式

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

請求的鏈式處理——職責鏈模式(一):采購單的分級審批
請求的鏈式處理——職責鏈模式(二):職責鏈模式概述
請求的鏈式處理——職責鏈模式(三):采購單分級審批的職責鏈模式解決方案
請求的鏈式處理——職責鏈模式(四):純與不純的職責鏈模式,職責鏈模式總結

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

請求發送者與接收者解耦——命令模式(一):自定義功能鍵,命令模式概述
請求發送者與接收者解耦——命令模式(二):自定義功能鍵的命令模式解決方案
請求發送者與接收者解耦——命令模式(三):命令隊列的實現
請求發送者與接收者解耦——命令模式(四):撤銷操作的簡單實現
請求發送者與接收者解耦——命令模式(五):請求日志
請求發送者與接收者解耦——命令模式(六):宏命令,命令模式總結

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

自定義語言的實現——解釋器模式(一):機器人控制程序
自定義語言的實現——解釋器模式(二):文法規則和抽象語法樹
自定義語言的實現——解釋器模式(三):解釋器模式概述
自定義語言的實現——解釋器模式(四):機器人控制程序的解釋器模式解決方案
自定義語言的實現——解釋器模式(五):再談Context的作用
自定義語言的實現——解釋器模式(六):解釋器模式總結

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

遍歷聚合對象中的元素——迭代器模式(一):銷售管理系統中數據的遍歷
遍歷聚合對象中的元素——迭代器模式(二):迭代器模式概述
遍歷聚合對象中的元素——迭代器模式(三):銷售管理系統中數據的遍歷的迭代器模式解決方案
遍歷聚合對象中的元素——迭代器模式(四):使用內部類實現迭代器
遍歷聚合對象中的元素——迭代器模式(五):JDK內置迭代器的使用
遍歷聚合對象中的元素——迭代器模式(六):迭代器模式總結

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

協調多個對象之間的交互——中介者模式(一):客戶信息管理窗口的初始設計
協調多個對象之間的交互——中介者模式(二):中介者模式概述
協調多個對象之間的交互——中介者模式(三):客戶信息管理窗口的中介者模式解決方案
協調多個對象之間的交互——中介者模式(四):中介者與同事類的擴展
協調多個對象之間的交互——中介者模式(五):中介者模式總結

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

撤銷功能的實現——備忘錄模式(一):可悔棋的中國象棋
撤銷功能的實現——備忘錄模式(二):備忘錄模式概述
撤銷功能的實現——備忘錄模式(三):中國象棋的備忘錄模式解決方案
撤銷功能的實現——備忘錄模式(四):實現多次撤銷
撤銷功能的實現——備忘錄模式(五):再談備忘錄的封裝,備忘錄模式總結

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

對象間的聯動——觀察者模式(一):多人聯機對戰游戲的設計
對象間的聯動——觀察者模式(二):觀察者模式概述
對象間的聯動——觀察者模式(三):多人聯機對戰游戲的觀察者模式解決方案
對象間的聯動——觀察者模式(四):JDK對觀察者模式的支持
對象間的聯動——觀察者模式(五):觀察者模式與Java事件處理
對象間的聯動——觀察者模式(六):觀察者模式與MVC,觀察者模式總結

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

處理對象的多種狀態及其相互轉換——狀態模式(一):銀行系統中的賬戶類設計
處理對象的多種狀態及其相互轉換——狀態模式(二):狀態模式概述
處理對象的多種狀態及其相互轉換——狀態模式(三):賬戶類的狀態模式解決方案
處理對象的多種狀態及其相互轉換——狀態模式(四):共享狀態的實現
處理對象的多種狀態及其相互轉換——狀態模式(五):使用環境類實現狀態轉換
處理對象的多種狀態及其相互轉換——狀態模式(六):狀態模式總結

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

算法的封裝與切換——策略模式(一):電影票打折方案
算法的封裝與切換——策略模式(二):策略模式概述
算法的封裝與切換——策略模式(三):電影票打折方案的策略模式解決方案
算法的封裝與切換——策略模式(四):策略模式的兩個典型應用,策略模式總結

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

模板方法模式深度解析(一):模板方法模式概述,模板方法模式結構與實現
模板方法模式深度解析(二):模板方法模式應用實例(銀行利息計算模塊)
模板方法模式深度解析(三):鉤子方法的使用,模板方法模式效果與適用場景

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

操作復雜對象結構——訪問者模式(一):OA系統中員工數據匯總
操作復雜對象結構——訪問者模式(二):訪問者模式概述
操作復雜對象結構——訪問者模式(三):OA系統中員工數據匯總的訪問者模式解決方案
操作復雜對象結構——訪問者模式(四):訪問者模式與組合模式聯用,訪問者模式總結

五、設計模式趣味學習(復習)

設計模式與足球(一):創建型模式
設計模式與足球(二):結構型模式
設計模式與足球(三):行為型模式(上)
設計模式與足球(四):行為型模式(下)

六、設計模式綜合應用實例

1、多人聯機射擊游戲

多人聯機射擊游戲中的設計模式應用(一):抽象工廠模式,建造者模式,工廠方法模式,迭代器模式,命令模式
多人聯機射擊游戲中的設計模式應用(二):觀察者模式,單例模式,狀態模式,適配器模式

2、數據庫同步系統

設計模式綜合實例分析之數據庫同步系統(一):數據庫同步系統概述,建造者模式,簡單工廠模式
設計模式綜合實例分析之數據庫同步系統(二):享元模式,單例模式,觀察者模式,模板方法模式
設計模式綜合實例分析之數據庫同步系統(三):策略模式,組合模式,命令模式,職責鏈模式

友情提示:請尊重作者勞動成果,如需轉載本博客文章請注明出處!謝謝合作!【原文作者:劉偉 http://blog.csdn.net/lovelion】

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,646評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,595評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,560評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,035評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,814評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,224評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,301評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,444評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,988評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,804評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,998評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,544評論 5 360
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,237評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,665評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,927評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,706評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,993評論 2 374

推薦閱讀更多精彩內容

  • 最近在整理程序設計原則,但是只是憑自己的經驗簡單描述了一下,顯然不是很規范。設計的原則有單一職責、接口隔離、開放封...
    但莫閱讀 1,078評論 0 23
  • 圣誕獻禮! 2012年-2013年,Sunny在CSDN技術博客中陸續發表了100多篇與設計模式學習相關的文章...
    AFinalStone閱讀 801評論 1 13
  • 設計模式匯總 一、基礎知識 1. 設計模式概述 定義:設計模式(Design Pattern)是一套被反復使用、多...
    MinoyJet閱讀 3,960評論 1 15
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,785評論 18 139
  • 1.任何話題都有無窮豐富的層次。表面看到的是非,不是唯一的是非。 2.每個層次之間,沒有高低貴賤之分。關鍵看你當下...
    深夜筆廚閱讀 280評論 0 0