本書分為4個部分,共26章:第1部分(第1章-第2章)為基礎知識,包括設計模式概述、UML類圖和面向?qū)ο笤O計原則等內(nèi)容;第2部分(第3章-第8章)為創(chuàng)建的藝術(shù),包括6種常用的創(chuàng)建型設計模式;第3部分(第9章-第15章)為組合的藝術(shù),包括7種常用的結(jié)構(gòu)型設計模式;第4部分(第16章-第26章)為交互的藝術(shù),包括11種常用的行為型設計模式。
本書可作為一線軟件開發(fā)人員、高等院校計算機及軟件等相關專業(yè)師生、IT培訓機構(gòu)講師和學員、設計模式研究人員和模式愛好者的參考用書和自學讀物。
劉偉,中南大學計算機應用技術(shù)博士,高#級工程師,中國計算機學會會員,美國計算機學會會員,國家認證系統(tǒng)分析師,首批國家認證系統(tǒng)架構(gòu)設計師,CSDN認證專家及知名博主。具有十多年軟件開發(fā)、項目管理及教育培訓經(jīng)驗,為多家國內(nèi)外知名企業(yè)提供IT咨詢和培訓服務,已出版《設計模式》、《設計模式實訓教程》、《C#設計模式》、《Java設計模式》、《設計模式實驗及習題解析》等多部著作。
配套資源下載
第1部分 基 礎 知 識
第1章 從招式與內(nèi)功談起——設計模式概述
1.1 設計模式從何而來
1.2 設計模式是什么
1.3 設計模式有什么用
1.4 個人觀點
第2章 預備知識——UML類圖與面向?qū)ο笤O計原則
2.1 UML概述
2.2 類與類的UML圖示
2.3 類之間的關系
2.4 面向?qū)ο笤O計原則概述
2.5 單一職責原則
2.6 開閉原則
2.7 里氏代換原則
2.8 依賴倒轉(zhuǎn)原則
2.9 接口隔離原則
2.1 0合成復用原則
2.1 1迪米特法則
第2部分 創(chuàng)建的藝術(shù)——創(chuàng)建型模式
第3章 確保對象的唯#一性——單例模式
3.1 單例模式的動機
3.2 單例模式概述
3.3 負載均衡器的設計
3.4 餓漢式單例與懶漢式單例的討論
3.5 一種更好的單例實現(xiàn)方法
3.6 單例模式總結(jié)
第4章 集中式工廠的實現(xiàn)——簡單工廠模式
4.1 圖表庫的設計
4.2 簡單工廠模式概述
4.3 完整解決方案
4.4 方案的改進
4.5 創(chuàng)建對象與使用對象
4.6 簡單工廠模式的簡化
4.7 簡單工廠模式總結(jié)
第5章 多態(tài)工廠的實現(xiàn)——工廠方法模式
5.1 日志記錄器的設計
5.2 工廠方法模式概述
5.3 完整解決方案
5.4 反射與配置文件
5.5 重載的工廠方法
5.6 工廠方法的隱藏
5.7 工廠方法模式總結(jié)
第6章 產(chǎn)品族的創(chuàng)建——抽象工廠模式
6.1 界面皮膚庫的初始設計
6.2 產(chǎn)品等級結(jié)構(gòu)與產(chǎn)品族
6.3 抽象工廠模式概述
6.4 完整解決方案
6.5 開閉原則的傾斜性
6.6 抽象工廠模式總結(jié)
第7章 對象的克隆——原型模式
7.1 大同小異的工作周報
7.2 原型模式概述
7.3 完整解決方案
7.4 帶附件的周報
7.5 原型管理器的引入和實現(xiàn)
7.6 原型模式總結(jié)
第8章 復雜對象的組裝與創(chuàng)建——建造者模式
8.1 游戲角色設計
8.2 建造者模式概述
8.3 完整解決方案
8.4 關于Director的進一步討論
8.5 建造者模式總結(jié)
第3部分 組合的藝術(shù)——結(jié)構(gòu)型模式
第9章 不兼容結(jié)構(gòu)的協(xié)調(diào)——適配器模式
9.1 沒有源碼的算法庫
9.2 適配器模式概述
9.3 完整解決方案
9.4 類適配器模式
9.5 雙向適配器模式
9.6 缺省適配器模式
9.7 適配器模式總結(jié)
第10章 處理多維度變化——橋接模式
10.1 跨ping臺圖像瀏覽系統(tǒng)
10.2 橋接模式概述
10.3 完整解決方案
10.4 適配器模式與橋接模式的聯(lián)用
10.5 橋接模式總結(jié)
第11章 樹形結(jié)構(gòu)的處理——組合模式
11.1 設計殺毒軟件的框架結(jié)構(gòu)
11.2 組合模式概述
11.3 完整解決方案
11.4 透明組合模式與安全組合模式
11.5 Sunny公司組織結(jié)構(gòu)
11.6 組合模式總結(jié)
第12章 擴展系統(tǒng)功能——裝飾模式
12.1 圖形界面構(gòu)件庫的設計
12.2 裝飾模式概述
12.3 完整解決方案
12.4 透明裝飾模式與半透明裝飾模式
12.5 裝飾模式注意事項
12.6 裝飾模式總結(jié)
第13章 提供統(tǒng)一入口——外觀模式
13.1 文件加密模塊的設計
13.2 外觀模式概述
13.3 完整解決方案
13.4 抽象外觀類的引入
13.5 外觀角色設計補充說明
13.6 外觀模式總結(jié)
第14章 實現(xiàn)對象的復用——享元模式
14.1 圍棋棋子的設計
14.2 享元模式概述
14.3 完整解決方案
14.4 帶外部狀態(tài)的解決方案
14.5 單純享元模式和復合享元模式
14.6 關于享元模式的幾點補充
14.7 享元模式總結(jié)
第15章 對象的間接訪問——代理模式
15.1 收費商務信息查詢系統(tǒng)的設計
15.2 代理模式概述
15.3 完整解決方案
15.4 遠程代理
15.5 虛擬代理
15.6 Java動態(tài)代理
15.7 代理模式總結(jié)
第4部分 交互的藝術(shù)——行為型模式
第16章 請求的鏈式處理——職責鏈模式
16.1 采購單的分級審批
16.2 職責鏈模式概述
16.3 完整解決方案
16.4 純與不純的職責鏈模式
16.5 職責鏈模式總結(jié)
第17章 請求發(fā)送者與接收者解耦——命令模式
17.1 自定義功能鍵
17.2 命令模式概述
17.3 完整解決方案
17.4 命令隊列的實現(xiàn)
17.5 撤銷操作的實現(xiàn)
17.6 請求日志
17.7 宏命令
17.8 命令模式總結(jié)
第18章 自定義語言的實現(xiàn)——解釋器模式
18.1 機器人控制程序
18.2 文法規(guī)則和抽象語法樹
18.3 解釋器模式概述
18.4 完整解決方案
18.5 再談Context的作用
18.6 解釋器模式總結(jié)
第19章 遍歷聚合對象中的元素——迭代器模式
19.1 銷售管理系統(tǒng)中數(shù)據(jù)的遍歷
19.2 迭代器模式概述
19.3 完整解決方案
19.4 使用內(nèi)部類實現(xiàn)迭代器
19.5 JDK內(nèi)置迭代器
19.6 迭代器模式總結(jié)
第20章 協(xié)調(diào)多個對象之間的交互——中介者模式
20.1 客戶信息管理窗口的初始設計
20.2 中介者模式概述
20.3 完整解決方案
20.4 中介者與同事類的擴展
20.5 中介者模式總結(jié)
第21章 撤銷功能的實現(xiàn)——備忘錄模式
21.1 可悔棋的中國象棋
21.2 備忘錄模式概述
21.3 完整解決方案
21.4 實現(xiàn)多次撤銷
21.5 再談備忘錄的封裝
21.6 備忘錄模式總結(jié)
第22章 對象間的聯(lián)動——觀察者模式
22.1 多人聯(lián)機對戰(zhàn)游戲的設計
22.2 觀察者模式概述
22.3 完整解決方案
22.4 JDK對觀察者模式的支持
22.5 觀察者模式與Java事件處理
22.6 觀察者模式與MVC
22.7 觀察者模式總結(jié)
第23章 對象狀態(tài)及其轉(zhuǎn)換——狀態(tài)模式
23.1 銀行系統(tǒng)中的賬戶類設計
23.2 狀態(tài)模式概述
23.3 完整解決方案
23.4 共享狀態(tài)
23.5 使用環(huán)境類實現(xiàn)狀態(tài)轉(zhuǎn)換
23.6 狀態(tài)模式總結(jié)
第24章 算法的封裝與切換——策略模式
24.1 電影票打折方案
24.2 策略模式概述
24.3 完整解決方案
24.4 策略模式的兩個典型應用
24.5 策略模式總結(jié)
第25章 定義算法的框架——模板方法模式
25.1 銀行利息計算模塊
25.2 模板方法模式概述
25.3 完整解決方案
25.4 鉤子方法的使用
25.5 模板方法模式總結(jié)
第26章 操作復雜對象結(jié)構(gòu)——訪問者模式
26.1 OA系統(tǒng)中員工數(shù)據(jù)匯總
26.2 訪問者模式概述
26.3 完整解決方案
26.4 訪問者模式與組合模式聯(lián)用
26.5 訪問者模式總結(jié)
附錄A 常用設計模式的定義及結(jié)構(gòu)圖
A.1 創(chuàng)建型設計模式
A.2 結(jié)構(gòu)型設計模式
A.3 行為型設計模式
參考文獻