第一部分 麵嚮對象軟件開發簡介
第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
· · · · · · (
收起)