設計模式解析, 2/e (修訂版) 设计模式解析(第2版修订版)(异步图书) (软件开发方法学精选系列)

艾倫·沙洛維(Alan Shalloway), 詹姆斯·R.特羅特(James R.Trott)

買這商品的人也買了...

商品描述

<內容簡介>

本書以作者自身學習、使用模式和多年來為軟件開發人員(包括面向對象技術老兵和新手)講授模式的經驗為基礎撰寫而成。首先概述了模式的基礎知識,以及面向對象分析和設計在當代軟件開發中的重要性,隨後使用易懂的示例代碼闡明瞭12個常用的模式,包括它們的基礎概念、優點、權衡取捨、實現技術以及需要避免的缺陷,使讀者能夠理解模式背後的基本原則和動機,理解為什麼它們會這樣運作。本書適合軟件開發專業人士,以及計算機專業、軟件工程專業的高校師生閱讀,也可作為面向對象分析與設計課程的參考教材。

<作者簡介>

Alan Shalloway美國Net Objectives諮詢/培訓公司的創始人和CEO。他是麻省理工學院的計算機科學碩士,具有30多年面向對象諮詢、培訓和軟件開發的經驗,並經常受邀在重要的軟件開發會議(包括SD Expro、Java One、OOP和OOPSLA)上演講。
James R. Trott美國一家大型金融機構的資深顧問。他是應用數學科學碩士、MBA和跨文化研究碩士。在其20年的職業生涯中,他一直將面向對象和基於模式的分析技術運用在知識管理、知識工程等方面,是運用認知設計模式與KADS方法學的專家。

<目錄>

第一部分面向對象軟件開發簡介
第1章面向對象範型2
1.1概覽2
1.2面向對象範型之前:功能分解2
1.3需求問題4
1.4應對變化:使用功能分解5
1.5應對需求變更7
1.6面向對象範型10
1.7面向對象程序設計實踐15
1.8特殊對象方法17
1.9小結18
複習題19
簡答題19
闡述題20
觀點與應用題20
第2章UML 21
2.1概覽21
2.2什麼是UML 21
2.3為什麼使用UML 22
2.4類圖22
2.5交互圖28
2.6小結30
複習題30
簡答題30
闡述題30
觀點與應用題30
第二部分傳統面向對象設計的局限
第3章對代碼靈活性要求很高的問題33
3.1概覽33
3.2提取CAD/ CAM系統的信息33
3.3瞭解專業術語34
3.4問題描述35
3.5挑戰及其解決方案37
3.6小結39
複習題40
簡答題40
闡述題40
觀點與應用題40
第4章標準的面向對象解決方案41
4.1概覽41
4.2作為特例來解決41
4.3小結48
複習題48
簡答題48
闡述題49
觀點與應用題49
第三部分設計模式
第5章設計模式簡介53
5.1概覽53
5.2設計模式源自建築學和人類學53
5.3從建築模式到軟件設計模式57
5.4為什麼學習設計模式58
5.5學習設計模式的其他好處62
5.6小結63
複習題63
簡答題63
闡述題64
觀點與應用題64
第6章Facade模式65
6.1概覽65
6.2 Facade模式簡介65
6.3學習Facade模式65
6.4實踐註記:Facade模式68
6.5 Facade模式與CAD/CAM問題的聯繫69
6.6小結70
複習題70
簡答題70
闡述題70
觀點與應用題71
第7章Adapter模式72
7.1概覽72
7.2 Adapter模式簡介72
7.3學習Adapter模式73
7.4實踐註記:Adapter模式77
7.5 Adapter模式與CAD/CAM問題的聯繫80
7.6小結80
複習題80
簡答題80
闡述題81
觀點與應用題81
第8章開拓視野82
8.1概覽82
8.2對象:傳統看法與新看法83
8.3封裝:傳統看法與新看法84
8.4發現變化並將其封裝87
8.5共性和可變性分析與抽像類90
8.6敏捷編程的品質92
8.7小結95
複習題96
簡答題96
闡述題96
觀點與應用題97
第9章Strategy模式98
9.1概覽98
9.2處理新需求的一種途徑98
9.3國際電子商務系統案例研究:最初的需求100
9.4處理新的需求101
9.5 Strategy模式108
9.6實踐註記:使用Strategy模式110
9.7小結111
複習題111
簡答題111
闡述題112
觀點與應用題112
第10章Bridge模式113
10.1概覽113
10.2 Bridge模式簡介113
10.3學習Bridge模式:示例114
10.4對使用設計模式的觀察123
10.5學習Bridge模式:通過將它推演出來124
10.6 Bridge模式回顧131
10.7實踐註記:使用Bridge模式132
10.8小結135
複習題137
簡答題137
闡述題137
觀點與應用題137
第11章Abstract Factory模式138
11.1概覽138
11.2 Abstract Factory模式簡介138
11.3學習Abstract Factory模式:示例138
11.4學習Abstract Factory模式:實現該模式144
11.5實踐註記:Abstract Factory模式149
11.6將Abstract Factory模式與CAD/CAM問題聯繫起來151
11.7小結151
複習題152
簡答題152
闡述題152
觀點與應用題152
第四部分組合起來:用模式思考
第12章專家設計之道154
12.1概覽154
12.2添加特徵的創建方式154
12.3小結160
複習題160
簡答題160
闡述題161
觀點與應用題161
第13章用模式解決CAD/CAM問題162
13.1概覽162
13.2對CAD/CAM問題的回顧162
13.3用模式思考163
13.4用模式思考:步驟1 164
13.5用模式思考:步驟2a 165
13.6用模式思考:步驟2b 169
13.7用模式思考:步驟2c 172
13.8用模式思考:重複步驟2a和步驟2b(Facade模式) 173
13.9用模式思考:重複步驟2a和步驟2b(Adapter模式) 174
13.10用模式思考:重複步驟2a和步驟2b(Abstract Factory模式) 174
13.11用模式思考:步驟3 175
13.12與原解決方案的比較175
13.13小結176
複習題177
簡答題177
闡述題177
觀點與應用題177
第五部分邁向新的設計方式
第14章設計模式的原則與策略180
14.1概覽180
14.2開閉原則181
14.3從背景設計原則181
14.4封裝變化原則185
14.5抽像類與接口186
14.6理性懷疑原則187
14.7小結187
複習題188
簡答題188
闡述題188
觀點與應用題188
第15章共性與可變性分析189
15.1概覽189
15.2共性和可變性分析與應用程序設計189
15.3用CVA解決CAD/CAM問題190
15.4小結194
複習題194
簡答題194
闡述題194
觀點與應用題195
第16章分析矩陣196
16.1概覽196
16.2現實世界:充滿變化196
16.3國際電子商務系統案例研究:應對變化197
16.4實踐註記203
16.5小結206
複習題206
簡答題206
闡述題206
觀點與應用題206
第17章Decorator模式207
17.1概覽207
17.2更多細節207
17.3 Decorator模式209
17.4將Decorator模式應用到我們的案例研究210
17.5另一個例子:輸入/輸出213
17.6實踐註記:使用Decorator模式215
17.7 Decorator模式的本質216
17.8小結217
複習題217
簡答題217
闡述題217
觀點與應用題217
第六部分其他重要模式
第18章Observer模式220
18.1概覽220
18.2模式的分類220
18.3國際電子商務案例的更多需求221
18.4 Observer模式222
18.5將Observer模式應用到我們的案例研究223
18.6實踐註記:使用Observer模式227
18.7小結229
複習題229
簡答題229
闡述題230
觀點與應用題230
第19章Template Method模式231
19.1概覽231
19.2案例研究的更多需求231
19.3 Template Method模式232
19.4將Template Method模式應用到我們的案例研究232
19.5使用Template Method模式減少冗餘233
19.6實踐註記:使用Template Method模式238
19.7小結239
複習題240
簡答題240
闡述題240
第七部分各種工廠模式
第20章來自設計模式的教益:各種工廠模式242
20.1概覽242
20.2工廠242
20.3再談背景243
20.4工廠遵循我們的準則245
20.5限制變化的影響246
20.6對工廠的另一種思考方式246
20.7工廠的不同角色247
20.8實踐註記247
20.9小結248
複習題248
簡答題248
闡述題248
觀點與應用題248
第21章Singleton模式和Double-Checked Locking模式249
21.1概覽249
21.2 Singleton模式簡介249
21.3將Singleton模式應用到我們的案例研究250
21.4一種變體:Double-Checked Locking模式252
21.5反思255
21.6實踐註記:使用Singleton模式和Double-Checked Locking模式255
21.7小結256
複習題256
簡答題256
闡述題256
觀點與應用題256
第22章Object Pool模式257
22.1概覽257
22.2一個需要對對象進行管理的問題257
22.3 Object Pool模式263
22.4觀察:工廠的作用不僅是實例化263
22.5小結265
複習題265
簡答題265
闡述題266
觀點與應用題266
第23章Factory Method模式267
23.1概覽267
23.2案例研究的更多需求267
23.3 Factory Method模式268
23.4 Factory Method模式與面向對象語言268
23.5實踐註記:使用Factory Method模式269
23.6小結270
複習題271
簡答題271
闡述題271
觀點與應用題271
第24章工廠模式的總結272
24.1概覽272
24.2軟件開發過程中的步驟272
24.3工廠與極限編程實踐殊途同歸273
24.4系統的擴展性273
第八部分終點與起點
第25章設計模式回顧:總結與新起點276
25.1概覽276
25.2面向對象原則的總結276
25.3設計模式如何封裝實現277
25.4共性和可變性分析與設計模式277
25.5按責任分解問題域278
25.6模式和從背景設計279
25.7模式內部的關聯279
25.8設計模式與敏捷編程實踐281
25.9實踐註記281
25.10小結281
複習題282
簡答題282
闡述題282
觀點與應用題282
第26章參考書目283
26.1本書配套網站283
26.2推薦閱讀284
26.3針對Java程序員的推薦讀物285
26.4針對C++程序員的推薦讀物286
26.5針對COBOL程序員的推薦讀物287
26.6極限編程的推薦讀物287
26.7程序設計的一般性推薦讀物287
26.8個人推薦288