第一部分 面向对象软件开发简介
         第1章 面向对象范型 3
         1.1 概览 3
         1.2 面向对象范型之前:功能分解 3
         1.3 需求问题 5
         1.4 应对变化:使用功能分解 6
         1.5 应对需求变更 8
         1.6 面向对象范型 11
         1.7 面向对象程序设计实践 16
         1.7 特殊对象方法 18
         1.8 小结 19
         复习题 20
         简答题 20
         阐述题 21
         观点与应用题 21
         第2章 UML 22
         2.1 概览 22
         2.2 什么是UML 22
         2.3 为什么使用UML 23
         2.4 类图 23
         2.5 交互图 29
         2.6 小结 31
         复习题 31
         简答题 31
         阐述题 31
         观点与应用题 31
         第二部分 传统面向对象设计的局限
         第3章 对代码灵活性要求很高的问题 35
         3.1 概览 35
         3.2 提取CAD/CAM系统的信息 35
         3.3 了解专业术语 36
         3.4 问题描述 37
         3.5 挑战及其解决方案 39
         3.6 小结 41
         复习题 42
         简答题 42
         阐述题 42
         观点与应用题 42
         第4章 标准的面向对象解决方案 43
         4.1 概览 43
         4.2 作为特例来解决 43
         4.3 小结 50
         复习题 51
         简答题 51
         阐述题 51
         观点与应用题 51
         第三部分 设 计 模 式
         第5章 设计模式简介 55
         5.1 概览 55
         5.2 设计模式源自建筑学和人类学 55
         5.3 从建筑模式到软件设计模式 59
         5.4 为什么学习设计模式 60
         5.5 学习设计模式的其他好处 64
         5.6 小结 65
         复习题 65
         简答题 65
         阐述题 66
         观点与应用题 66
         第6章 Facade模式 67
         6.1 概览 67
         6.2 Facade模式简介 67
         6.3 学习Facade模式 67
         6.4 实践注记:Facade模式 70
         6.5 Facade模式与CAD/CAM问题的联系 71
         6.6 小结 72
         复习题 72
         简答题 72
         阐述题 72
         观点与应用题 73
         第7章 Adapter模式 74
         7.1 概览 74
         7.2 Adapter模式简介 74
         7.3 学习Adapter模式 75
         7.4 实践注记:Adapter模式 79
         7.5 Adapter模式与CAD/CAM问题的联系 82
         7.6 小结 82
         复习题 82
         简答题 82
         阐述题 83
         观点与应用题 83
         第8章 开拓视野 84
         8.1 概览 84
         8.2 对象:传统看法与新看法 85
         8.3 封装:传统看法与新看法 86
         8.4 发现变化并将其封装 89
         8.5 共性和可变性分析与抽象类 92
         8.6 敏捷编程的品质 94
         8.7 小结 97
         复习题 98
         简答题 98
         阐述题 98
         观点与应用题 99
         第9章 Strategy模式 100
         9.1 概览 100
         9.2 处理新需求的一种途径 100
         9.3 国际电子商务系统案例研究:最初的需求 102
         9.4 处理新的需求 103
         9.5 Strategy模式 110
         9.6 实践注记:使用Strategy模式 112
         9.7 小结 113
         复习题 114
         简答题 114
         阐述题 114
         观点与应用题 114
         第10章 Bridge模式 115
         10.1 概览 115
         10.2 Bridge模式简介 115
         10.3 学习Bridge模式:示例 116
         10.4 对使用设计模式的观察 125
         10.5 学习Bridge模式:通过将它推演出来 126
         10.6 Bridge模式回顾 133
         10.7 实践注记:使用Bridge模式 134
         10.8 小结 137
         复习题 139
         简答题 139
         阐述题 139
         观点与应用题 139
         第11章 Abstract Factory模式 140
         11.1 概览 140
         11.2 Abstract Factory模式简介 140
         11.3 学习Abstract Factory模式:示例 140
         11.4 学习Abstract Factory模式:实现该模式 146
         11.5 实践注记:Abstract Factory模式 151
         11.6 将Abstract Factory模式与CAD/CAM问题联系起来 153
         11.7 小结 153
         复习题 154
         简答题 154
         阐述题 154
         观点与应用题 154
         第四部分 组合起来:用模式思考
         第12章 专家设计之道 157
         12.1 概览 157
         12.2 添加特征的创建方式 157
         12.3 小结 163
         复习题 163
         简答题 163
         阐述题 164
         观点与应用题 164
         第13章 用模式解决CAD/CAM问题 165
         13.1 概览 165
         13.2 对CAD/CAM问题的回顾 165
         13.3 用模式思考 166
         13.4 用模式思考:步骤1 167
         13.5 用模式思考:步骤2a 168
         13.6 用模式思考:步骤2b 172
         13.7 用模式思考:步骤2c 175
         13.8 用模式思考:重复步骤2a和2b(Facade模式) 176
         13.9 用模式思考:重复步骤2a和2b(Adapter模式) 177
         13.10 用模式思考:重复步骤2a和2b(Abstract Factory模式) 177
         13.11 用模式思考:步骤3 178
         13.12 与原解决方案的比较 178
         13.13 小结 179
         复习题 180
         简答题 180
         阐述题 180
         观点与应用题 180
         第五部分 迈向新的设计方式
         第14章 设计模式的原则与策略 183
         14.1 概览 183
         14.2 开闭原则 184
         14.3 从背景设计原则 184
         14.4 封装变化原则 188
         14.5 抽象类与接口 189
         14.6 理性怀疑原则 190
         14.7 小结 190
         复习题 191
         简答题 191
         阐述题 191
         观点与应用题 191
         第15章 共性与可变性分析 192
         15.1 概览 192
         15.2 共性和可变性分析与应用程序设计 192
         15.3 用CVA解决CAD/CAM问题 193
         15.4 小结 197
         复习题 197
         简答题 197
         阐述题 197
         观点与应用题 198
         第16章 分析矩阵 199
         16.1 概览 199
         16.2 现实世界:充满变化 199
         16.3 国际电子商务系统案例研究:应对变化 200
         16.4 实践注记 206
         16.5 小结 209
         复习题 209
         简答题 209
         阐述题 209
         观点与应用题 209
         第17章 Decorator模式 210
         17.1 概览 210
         17.2 更多细节 210
         17.3 Decorator模式 212
         17.4 将Decorator模式应用到我们的案例研究 213
         17.5 另一个例子:输入/输出 216
         17.6 实践注记:使用Decorator模式 218
         17.7 Decorator模式的本质 219
         17.8 小结 220
         复习题 220
         简答题 220
         阐述题 220
         观点与应用题 220
         第六部分 其他重要模式
         第18章 Observer模式 223
         18.1 概览 223
         18.2 模式的分类 223
         18.3 国际电子商务案例的更多需求 224
         18.4 Observer模式 225
         18.5 将Observer模式应用到我们的案例研究 226
         18.6 实践注记:使用Observer模式 230
         18.7 小结 232
         复习题 232
         简答题 232
         阐述题 233
         观点与应用题 233
         第19章 Template Method模式 234
         19.1 概览 234
         19.2 案例研究的更多需求 234
         19.3 Template Method模式 235
         19.4 将Template Method模式应用到我们的案例研究 235
         19.5 使用Template Method模式减少冗余 236
         19.6 实践注记:使用Template Method模式 241
         19.7 小结 242
         复习题 243
         简答题 243
         阐述题 243
         第七部分 各种工厂模式
         第20章 来自设计模式的教益:各种工厂模式 247
         20.1 概览 247
         20.2 工厂 247
         20.3 再谈背景 248
         20.4 工厂遵循我们的准则 250
         20.5 限制变化的影响 251
         20.6 对工厂的另一种思考方式 251
         20.7 工厂的不同角色 252
         20.8 实践注记 252
         20.9 小结 253
         复习题 253
         简答题 253
         阐述题 253
         观点与应用题 253
         第21章 Singleton模式和Double-CheckedLocking模式 254
         21.1 概览 254
         21.2 Singleton模式简介 254
         21.3 将Singleton模式应用到我们的案例研究 255
         21.4 一种变体:Double-Checked Locking模式 257
         21.5 反思 260
         21.6 实践注记:使用Singleton模式和 260
         Double-Checked Locking模式 260
         21.7 小结 261
         复习题 261
         简答题 261
         阐述题 261
         观点与应用题 261
         第22章 Object Pool模式 262
         22.1 概览 262
         22.2 一个需要对对象进行管理的问题 262
         22.3 Object Pool模式 268
         22.4 观察:工厂的作用不仅是实例化 268
         22.5 小结 270
         复习题 270
         简答题 270
         阐述题 271
         观点与应用题 271
         第23章 Factory Method模式 272
         23.1 概览 272
         23.2 案例研究的更多需求 272
         23.3 Factory Method模式 273
         23.4 Factory Method模式与面向对象语言 273
         23.5 实践注记:使用Factory Method模式 274
         23.6 小结 275
         复习题 276
         简答题 276
         阐述题 276
         观点与应用题 276
         第24章 工厂模式的总结 277
         24.1 概览 277
         24.2 软件开发过程中的步骤 277
         24.3 工厂与极限编程实践殊途同归 278
         24.4 系统的扩展性 278
         第八部分 终点与起点
         第25章 设计模式回顾:总结与新起点 283
         25.1 概览 283
         25.2 面向对象原则的总结 283
         25.3 设计模式如何封装实现 284
         25.4 共性和可变性分析与设计模式 284
         25.5 按责任分解问题域 285
         25.6 模式和从背景设计 286
         25.7 模式内部的关联 286
         25.8 设计模式与敏捷编程实践 288
         25.9 实践注记 288
         25.10 小结 288
         复习题 289
         简答题 289
         阐述题 289
         观点与应用题 289
         第26章 参考书目 290
         26.1 本书配套网站 290
         26.2 推荐阅读 291
         26.3 针对Java程序员的推荐读物 292
         26.4 针对C++程序员的推荐读物 293
         26.5 针对COBOL程序员的推荐读物 294
         26.6 极限编程的推荐读物 294
         26.7 程序设计的一般性推荐读物 294
         26.8 个人推荐 295
      · · · · · ·     (
收起)