軟體開發方法學精選系列:設計模式解析

軟體開發方法學精選系列:設計模式解析

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

基本介紹

  • 外文名:Design Patterns Explained: A New Perspective on Object-Oriented Design, Second Edition
  • 書名:軟體開發方法學精選系列:設計模式解析
  • 作者:Alan Shalloway
  • 出版社:人民郵電出版社
  • 頁數:289頁
  • 開本:16
  • 品牌:人民郵電出版社
  • 類型:計算機與網際網路
  • 出版日期:2013年1月1日
  • 語種:簡體中文
  • ISBN:9787115296146 
基本介紹,內容簡介,作者簡介,專業推薦,媒體推薦,名人推薦,圖書目錄,

基本介紹

內容簡介

凝聚業界專家自身學習和教學經驗,通俗易懂
《Java編程思想》作者Bruce Eckel隆重推薦
簡明易讀、注重實用的設計模式最佳入門圖書
不僅講述模式本身,更提示模式背後的思想

作者簡介

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

專業推薦

媒體推薦

本書最大的優點之一是,作者採用類比而不是編程實例的方式清楚地解釋了概念,這使我深受啟發。
——Bruce Eckel,《Java編程思想》作者
全書對基本面向對象概念的闡釋極為出色。我在課堂上向初學者教授類似的概念時遇到過不少困難,好在現在有作者的方法可以借鑑了。當然,我強烈推薦這本書!
——Clifton Nock,《數據訪問模式》作者
寫得很好,引人深思,給人啟迪。對於設計模式和面向對象開發感興趣的任何人,都是必讀之作!
——James Huddleston,知名計算機圖書評論人

名人推薦

本書最大的優點之一是,作者採用類比而不是編程實例的方式清楚地解釋了概念,這使我深受啟發。
——Bruce Eckel,《Java編程思想》作者
全書對基本面向對象概念的闡釋極為出色。我在課堂上向初學者教授類似的概念時遇到過不少困難,好在現在有作者的方法可以借鑑了。當然,我強烈推薦這本書!
——Clifton Nock,《數據訪問模式》作者
寫得很好,引入深恩,給人啟迪。對於設計模式和面向對象開發感興趣的任何人,都是必讀之作!
——James Huddleston,知名計算機圖書評論人

圖書目錄

第一部分 面向對象軟體開發簡介
第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章 AbstractFactory模式 138
11.1 概覽 138
11.2 AbstractFactory模式簡介 138
11.3 學習AbstractFactory模式:示例 138
11.4 學習AbstractFactory模式:實現該模式 144
11.5 實踐註記:AbstractFactory模式 149
11.6 將AbstractFactory模式與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(AbstractFactory模式) 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章 TemplateMethod模式 231
19.1 概覽 231
19.2 案例研究的更多需求 231
19.3 TemplateMethod模式 232
19.4 將TemplateMethod模式套用到我們的案例研究 232
19.5 使用TemplateMethod模式減少冗餘 233
19.6 實踐註記:使用TemplateMethod模式 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—CheckedLocking模式 249
21.1 概覽 249
21.2 Singleton模式簡介 249
21.3 將Singleton模式套用到我們的案例研究 250
21.4 一種變體:Double—CheckedLocking模式 252
21.5 反思 255
21.6 實踐註記:使用Singleton模式和Double—CheckedLocking模式 255
21.7 小結 256
複習題 256
簡答題 256
闡述題 256
觀點與套用題 256
第22章 ObjectPool模式 257
22.1 概覽 257
22.2 一個需要對對象進行管理的問題 257
22.3 ObjectPool模式 263
22.4 觀察:工廠的作用不僅是實例化 263
22.5 小結 265
複習題 265
簡答題 265
闡述題 266
觀點與套用題 266
第23章 FactoryMethod模式 267
23.1 概覽 267
23.2 案例研究的更多需求 267
23.3 FactoryMethod模式 268
23.4 FactoryMethod模式與面向對象語言 268
23.5 實踐註記:使用FactoryMethod模式 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

相關詞條

熱門詞條

聯絡我們