本書共 23 章。內(nèi)容涵蓋了模式設(shè)計(jì)的六大法則:?jiǎn)我宦氊?zé)原則、里氏代換原則、開(kāi)放封閉原則、依賴倒轉(zhuǎn)原則、合成 聚合復(fù)用原則、迪米特法則。介紹了Java反射技術(shù)在模式中的重要作用。介紹了23種常用模式:接口與抽象類模式,工廠方法模式、抽象工廠模式、構(gòu)造者模式、橋接模式、裝飾模式、代理模式、狀態(tài)模式、觀察者模式、中介者模式等,以及這些模式的綜合運(yùn)用。
(1)提供大量項(xiàng)目實(shí)例,每個(gè)設(shè)計(jì)模式至少提供了一個(gè)完整的實(shí)例,是一本基于實(shí)例驅(qū)動(dòng)的設(shè)計(jì)模式實(shí)踐指南。
(2) 內(nèi)嵌了適量的思考題和練習(xí)題,所有練習(xí)題也都基于某個(gè)項(xiàng)目實(shí)例,讓讀者能夠在學(xué)習(xí)的同時(shí)通過(guò)思考題和練習(xí)題來(lái)理解和進(jìn)一步鞏固所學(xué)知識(shí)。
(3) 內(nèi)容全面,語(yǔ)言通俗,講解深入,難度適中,可滿足不同層次讀者的需求,每一個(gè)實(shí)例都提供了完整的可執(zhí)行代碼和結(jié)構(gòu)圖,所有結(jié)構(gòu)圖(類圖)均嚴(yán)格按照UML 2.0標(biāo)準(zhǔn)繪制,代碼均在JDK 1.7環(huán)境下通過(guò)測(cè)試且運(yùn)行無(wú)誤。
金百東,碩士,副教授,遼寧師范大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院教師。主編《Java web編程技術(shù)實(shí)用教程》、《C++STL基礎(chǔ)及應(yīng)用》、《Java程序設(shè)計(jì)》、《Java程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)》、《Java設(shè)計(jì)模式深入研究》等教材。其中《C++STL基礎(chǔ)及應(yīng)用》2014年獲第2批普通高等教育十二五國(guó)家級(jí)規(guī)劃教材。多次獲得藍(lán)橋杯全國(guó)軟件和信息技術(shù)專業(yè)人才大賽及遼寧省大學(xué)生ACM競(jìng)賽優(yōu)秀指導(dǎo)教師。研究興趣集中在物聯(lián)網(wǎng)信息處理、設(shè)計(jì)模式及STL應(yīng)用。在計(jì)算機(jī)應(yīng)用與軟件、微型機(jī)與應(yīng)用、自動(dòng)化技術(shù)與應(yīng)用等期刊發(fā)表論文18余篇。
第1章 設(shè)計(jì)模式概述 1
1.1 設(shè)計(jì)模式簡(jiǎn)介 2
1.2 預(yù)備知識(shí) 2
1.2.1 接口和抽象類 2
1.2.2 反射 4
模式實(shí)踐練習(xí) 10
第2章 單例模式 11
2.1 問(wèn)題的提出 12
2.2 單例模式 12
2.3 單例模式的實(shí)現(xiàn)方式 12
2.4 應(yīng)用示例 14
模式實(shí)踐練習(xí) 20
第3章 工廠模式 21
3.1 關(guān)鍵角色 22
3.2 簡(jiǎn)單工廠 23
3.2.1 代碼示例 23
3.2.2 代碼分析 24
3.2.3 語(yǔ)義分析 24
3.3 工廠 25
3.3.1 代碼示例 25
3.3.2 代碼分析 26
3.4 抽象工廠 27
3.4.1 代碼示例 28
3.4.2 代碼分析 29
3.4.3 典型模型語(yǔ)義分析 29
3.4.4 其他情況 29
3.5 應(yīng)用示例 32
3.6 自動(dòng)選擇工廠 37
模式實(shí)踐練習(xí) 38
第4章 生成器模式 39
4.1 問(wèn)題的提出 40
4.2 生成器模式 41
4.3 深入理解生成器模式 44
4.4 應(yīng)用示例 46
模式實(shí)踐練習(xí) 58
第5章 原型模式 59
5.1 問(wèn)題的提出 60
5.2 原型模式 60
5.3 原型復(fù)制具體實(shí)現(xiàn)方法 61
5.3.1 利用構(gòu)造函數(shù)方法 61
5.3.2 利用Cloneable接口方法 63
5.3.3 利用Serializable序列化接口方法 65
5.4 應(yīng)用示例 67
模式實(shí)踐練習(xí) 69
第6章 責(zé)任鏈模式 70
6.1 問(wèn)題的提出 71
6.2 責(zé)任鏈設(shè)計(jì)模式 71
6.3 反射的作用 73
6.4 回調(diào)技術(shù) 75
模式實(shí)踐練習(xí) 79
第7章 命令模式 80
7.1 問(wèn)題的提出 81
7.2 命令模式 81
7.3 深入理解命令模式 83
7.3.1 命令集管理 83
7.3.2 加深命令接口定義的理解 85
7.3.3 命令模式與JDK事件處理 86
7.3.4 命令模式與多線程 90
7.4 應(yīng)用示例 92
模式實(shí)踐練習(xí) 99
第8章 迭代器模式 100
8.1 問(wèn)題的提出 101
8.2 迭代器模式 103
8.3 應(yīng)用示例 104
模式實(shí)踐練習(xí) 109
第9章 訪問(wèn)者模式 110
9.1 問(wèn)題的提出 111
9.2 訪問(wèn)者模式 111
9.3 深入理解訪問(wèn)者模式 113
9.4 應(yīng)用示例 119
模式實(shí)踐練習(xí) 128
第10章 中介者模式 129
10.1 問(wèn)題的提出 130
10.2 中介者模式 130
10.3 應(yīng)用示例 133
模式實(shí)踐練習(xí) 139
第11章 備忘錄模式 140
11.1 問(wèn)題的提出 141
11.2 備忘錄設(shè)計(jì)模式 143
11.3 應(yīng)用示例 146
模式實(shí)踐練習(xí) 151
第12章 觀察者模式 152
12.1 問(wèn)題的提出 153
12.2 觀察者模式 153
12.3 深入理解觀察者模式 155
12.4 JDK中的觀察者設(shè)計(jì)模式 160
12.5 應(yīng)用示例 163
模式實(shí)踐練習(xí) 172
第13章 狀態(tài)模式 173
13.1 問(wèn)題的提出 174
13.2 狀態(tài)模式 174
13.3 深入理解狀態(tài)模式 175
13.4 應(yīng)用示例 180
模式實(shí)踐練習(xí) 191
第14章 策略模式 192
14.1 問(wèn)題的提出 193
14.2 策略模式 193
14.3 深入理解Context 195
14.4 應(yīng)用示例 198
模式實(shí)踐練習(xí) 202
第15章 模板方法模式 203
15.1 問(wèn)題的提出 204
15.2 方法模板 204
15.2.1 自定義方法模板 204
15.2.2 JDK方法模板 206
15.3 流程模板 208
15.4 應(yīng)用示例 210
模式實(shí)踐練習(xí) 213
第16章 解釋器模式 214
16.1 問(wèn)題的提出 215
16.2 解釋器模式 215
16.2.1 文法規(guī)則和抽象語(yǔ)法樹(shù) 215
16.2.2 解釋器模式 216
16.3 應(yīng)用示例 220
模式實(shí)踐練習(xí) 224
第17章 享元模式 225
17.1 問(wèn)題的提出 226
17.2 享元模式 226
17.3 系統(tǒng)中的享元模式 232
模式實(shí)踐練習(xí) 234
第18章 適配器模式 235
18.1 問(wèn)題的提出 236
18.2 適配器模式 236
18.2.1 對(duì)象適配器 236
18.2.2 類適配器 238
18.3 默認(rèn)適配器 238
18.4 應(yīng)用示例 240
模式實(shí)踐練習(xí) 244
第19章 組合模式 246
19.1 問(wèn)題的提出 247
19.2 組合模式 248
19.3 深入理解組合模式 250
19.3.1 其他常用操作 250
19.3.2 節(jié)點(diǎn)排序 252
19.4 應(yīng)用示例 252
模式實(shí)踐練習(xí) 264
第20章 代理模式 265
20.1 模式簡(jiǎn)介 266
20.2 虛擬代理 267
20.3 遠(yuǎn)程代理 272
20.3.1 RMI通信 272
20.3.2 RMI代理模擬 275
20.4 計(jì)數(shù)代理 277
20.4.1 動(dòng)態(tài)代理的成因 279
20.4.2 自定義動(dòng)態(tài)代理 279
20.4.3 JDK動(dòng)態(tài)代理 282
模式實(shí)踐練習(xí) 284
第21章 橋接模式 285
21.1 問(wèn)題的提出 286
21.2 橋接模式 286
21.3 深入理解橋接模式 289
21.4 應(yīng)用示例 292
模式實(shí)踐練習(xí) 301
第22章 裝飾器模式 302
22.1 問(wèn)題的提出 303
22.2 裝飾器模式 303
22.3 深入理解裝飾器模式 305
22.3.1 具體構(gòu)件角色的重要性 305
22.3.2 JDK中的裝飾器模式 306
22.4 應(yīng)用示例 309
模式實(shí)踐練習(xí) 320
第23章 外觀模式 321
23.1 問(wèn)題的提出 322
23.2 外觀模式 322
23.3 應(yīng)用示例 323
模式實(shí)踐練習(xí) 329
參考文獻(xiàn) 330