作者:
Alan Shalloway
/
James R·Trott
出版社: 人民邮电出版社
译者: 徐言声
出版年: 2013-1
页数: 300
定价: 55.00元
丛书: 软件开发方法学精选系列
ISBN: 9787115296146
出版社: 人民邮电出版社
译者: 徐言声
出版年: 2013-1
页数: 300
定价: 55.00元
丛书: 软件开发方法学精选系列
ISBN: 9787115296146
内容简介 · · · · · ·
《设计模式解析(第2版·修订版)》,本书首先概述了模式的基础知识,以及面向对象分析和设计在当代软件开发中的重要性,随后使用易懂的示例代码阐明了12个最常用的模式,使读者能够理解模式背后的基本原则和动机,理解为什么它们会这样运作。
作者简介 · · · · · ·
本书以作者自身学习、使用模式和多年来为软件开发人员(包括面向对象技术老兵和新手)讲授模式的经验为基础撰写而成。首先概述了模式的基础知识,以及面向对象分析和设计在当代软件开发中的重要性,随后使用易懂的示例代码阐明了12个最常用的模式,包括它们的基础概念、优点、权衡取舍、实现技术以及需要避免的缺陷,使读者能够理解模式背后的基本原则和动机,理解为什么它们会这样运作。
本书适合软件开发专业人士,以及计算机专业、软件工程专业的高校师生阅读,也可作为面向对象分析与设计课程的参考教材。
目录 · · · · · ·
第一部分 面向对象软件开发简介
第1章 面向对象范型 2
1.1 概览 2
1.2 面向对象范型之前:功能分解 2
1.3 需求问题 4
1.4 应对变化:使用功能分解 5
· · · · · · (更多)
第1章 面向对象范型 2
1.1 概览 2
1.2 面向对象范型之前:功能分解 2
1.3 需求问题 4
1.4 应对变化:使用功能分解 5
· · · · · · (更多)
第一部分 面向对象软件开发简介
第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
· · · · · · (收起)
第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
· · · · · · (收起)
丛书信息
· · · · · ·
软件开发方法学精选系列(共12册),
这套丛书还有
《验收测试驱动开发》《软件工程(第4版·修订版)》《UML用户指南》《敏捷软件开发》《设计模式解析 (第2版·修订版)》
等
。
喜欢读"设计模式解析"的人也喜欢 · · · · · ·
-
- 程序设计实践 8.3
-
- 面向模式的软件架构,卷3 8.5
-
- 重构与模式 8.3
-
- 自制编译器 8.2
-
- .NET设计规范 9.3
-
- UML和模式应用 8.2
-
- 可变目标C编译器 8.7
-
- TCP/IP协议族 9.3
-
- 高级编译器设计与实现 8.9
设计模式解析的书评 · · · · · · ( 全部 22 条 )



设计模式入门最佳书籍
如果你认为GOF的经典名著《设计模式》太晦涩难懂,《Head First Design Pattern》又太不技术书籍了,那么这本《设计模式解析》非常适合你!这本书每章结束时都有小结和启发性复习题,可以帮助你更好地了解自学得如何了。本书只介绍了几种比较常用简单的设计模式,因而在学习过...
(展开)

一本教材性质的模式书
可以将这本书看成"四人帮"设计模式的一个选择性展开说明, 作者认为设计模式里面的内容太晦涩, 太抽象, 学术味太重. 因此需要这么一本教材性质的模式书, 但是作者又没有全部把23种模式都拖出来论述一番, 而是按照自己的方式有选择性的进行重新的组织, 给人的感觉是前面的内容还...
(展开)


授人以鱼,还要授人以渔
现在闭上眼睛能搞明白的几种模式: 工厂,工厂方法,抽象工厂,桥模式,装饰,facade,适配,观察者,策略,单例。 学习了一招厘清复杂需求头绪的方法,叫做“分析矩阵”,在书中第16章,将来工作中遇到这种时候可以试一试。 感觉这本书后面翻译的没有前面好,不知道是我看...
(展开)

整本书看完,还是小有收获的
整本书看完,还是小有收获的,与大话设计模式等正好互补。只是这本书,让我最大的感觉就是猪八戒吃蟠桃(就一个)不爽呀。好处就是,总归是吃了一个。但是很多地方浅尝则止,写的不深入,特别是在案例说明举例处做的不好,非常不好,有点郁闷。但前面的分析部分很有点特点,尤...
(展开)
> 更多书评 22篇
论坛 · · · · · ·
在这本书的论坛里发言这本书的其他版本 · · · · · · ( 全部10 )
-
清华大学出版社 (2004)7.7分 152人读过
-
Addison-Wesley Professional (2004)9.3分 48人读过
-
人民邮电出版社 (2006)8.2分 382人读过
-
中国电力出版社 (2003)8.6分 66人读过
在哪儿借这本书 · · · · · ·
以下书单推荐 · · · · · · ( 全部 )
- programming (wealk)
- ThoughtWorks工程师读书路线图 (沉醉不知归路)
- 引进西方教科书 Pearson篇 (已己巳)
- 编程 (周)
- 技术精进 (柳帆)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
- 在豆瓣转让 有51人想读,手里有一本闲着?
订阅关于设计模式解析的评论:
feed: rss 2.0
1 有用 出门向左 2015-10-20 19:23:29
非常好的一本书.主要是受益于作者对设计模式原理上的推导. 面对一个个业务场景,共性与可变性分析;分析矩阵.画类图,一点点优化,最终推导出对应的设计模式
0 有用 谜团 2015-07-07 12:20:37
面向对象编程的必备思维,工程向的基础
0 有用 stephansun 2016-08-16 17:11:06
偏理解。
0 有用 MCMXC 2015-11-03 16:35:04
设计模式和面向对象良心书,作者高屋建瓴的讲解了面向对象技术和设计模式的由来,站在Alexander的肩膀上,秉承大道,可谓让人看完焕然一新。不近对于软件设计,对将来的方方面面都有深远的影响。
0 有用 [已注销] 2015-03-30 23:27:53
等我看了GOF再来对比下,目前不是很喜欢