第一部分 面向对象软件开发简介
第1章 面向对象范型
1.1 概览
1.2 面向对象范型之前:功能分解
1.3 需求问题
1.4 应对变化:使用功能分解
1.5 应对需求变更
1.6 面向对象范型
1.7 面向对象程序设计实践
1.8 特殊对象方法
1.9 小结
复习题
简答题
阐述题
观点与应用题
第2章 UML
2.1 概览
2.2 什么是UML
2.3 为什么使用UML
2.4 类图
2.5 交互图
2.6 小结
复习题
简答题
阐述题
观点与应用题
第二部分 传统面向对象设计的局限
第3章 对代码灵活性要求很高的问题
3.1 概览
3.2 提取CAD/CAM系统的信息
3.3 了解专业术语
3.4 问题描述
3.5 挑战及其解决方案
3.6 小结
复习题
简答题
阐述题
观点与应用题
第4章 标准的面向对象解决方案
4.1 概览
4.2 作为特例来解决
4.3 小结
复习题
简答题
阐述题
观点与应用题
第三部分 设计模式
第5章 设计模式简介
5.1 概览
5.2 设计模式源自建筑学和人类学
5.3 从建筑模式到软件设计模式
5.4 为什么学习设计模式
5.5 学习设计模式的其他好处
5.6 小结
复习题
简答题
阐述题
观点与应用题
第6章 Facade模式
6.1 概览
6.2 Facade模式简介
6.3 学习Facade模式
6.4 实践注记:Facade模式
6.5 Facade模式与CAD/CAM问题的联系
6.6 小结
复习题
简答题
阐述题
观点与应用题
第7章 Adapter模式
7.1 概览
7.2 Adapter模式简介
7.3 学习Adapter模式
7.4 实践注记:Adapter模式
7.5 Adapter模式与CAD/CAM问题的联系
7.6 小结
复习题
简答题
阐述题
观点与应用题
第8章 开拓视野
8.1 概览
8.2 对象:传统看法与新看法
8.3 封装:传统看法与新看法
8.4 发现变化并将其封装
8.5 共性和可变性分析与抽象类
8.6 敏捷编程的品质
8.7 小结
复习题
简答题
阐述题
观点与应用题
第9章 Strategy模式
9.1 概览
9.2 处理新需求的一种途径
9.3 国际电子商务系统案例研究:最初的需求
9.4 处理新的需求
9.5 Strategy模式
9.6 实践注记:使用Strategy模式
9.7 小结
复习题
简答题
阐述题
观点与应用题
第10章 Bridge模式
10.1 概览
10.2 Bridge模式简介
10.3 学习Bridge模式:示例
10.4 对使用设计模式的观察
10.5 学习Bridge模式:通过将它推演出来
10.6 Bridge模式回顾
10.7 实践注记:使用Bridge模式
10.8 小结
复习题
简答题
阐述题
观点与应用题
第11章 Abstract Factory模式
11.1 概览
11.2 Abstract Factory模式简介
11.3 学习Abstract Factory模式:示例
11.4 学习Abstract Factory模式:实现该模式
11.5 实践注记:Abstract Factory模式
11.6 将Abstract Factory模式与CAD/CAM问题联系起来
11.7 小结
复习题
简答题
阐述题
观点与应用题
第四部分 组合起来:用模式思考
第12章 专家设计之道
12.1 概览
12.2 添加特征的创建方式
12.3 小结
复习题
简答题
阐述题
观点与应用题
第13章 用模式解决CAD/CAM问题
13.1 概览
13.2 对CAD/CAM问题的回顾
13.3 用模式思考
13.4 用模式思考:步骤1
13.5 用模式思考:步骤2a
13.6 用模式思考:步骤2b
13.7 用模式思考:步骤2c
13.8 用模式思考:重复步骤2a和步骤2b(Facade模式)
13.9 用模式思考:重复步骤2a和步骤2b(Adapter模式)
13.10 用模式思考:重复步骤2a和步骤2b(Abstract Factory模式)
13.11 用模式思考:步骤3
13.12 与原解决方案的比较
13.13 小结
复习题
简答题
阐述题
观点与应用题
第五部分 迈向新的设计方式
第14章 设计模式的原则与策略
14.1 概览
14.2 开闭原则
14.3 从背景设计原则
14.4 封装变化原则
14.5 抽象类与接口
14.6 理性怀疑原则
14.7 小结
复习题
简答题
阐述题
观点与应用题
第15章 共性与可变性分析
15.1 概览
15.2 共性和可变性分析与应用程序设计
15.3 用CVA解决CAD/CAM问题
15.4 小结
复习题
简答题
阐述题
观点与应用题
第16章 分析矩阵
16.1 概览
16.2 现实世界:充满变化
16.3 国际电子商务系统案例研究:应对变化
16.4 实践注记
16.5 小结
复习题
简答题
阐述题
观点与应用题
第17章 Decorator模式
17.1 概览
17.2 更多细节
17.3 Decorator模式
17.4 将Decorator模式应用到我们的案例研究
17.5 另一个例子:输入/输出
17.6 实践注记:使用Decorator模式
17.7 Decorator模式的本质
17.8 小结
复习题
简答题
阐述题
观点与应用题
第六部分 其他重要模式
第18章 Observer模式
18.1 概览
18.2 模式的分类
18.3 国际电子商务案例的更多需求
18.4 Observer模式
18.5 将Observer模式应用到我们的案例研究
18.6 实践注记:使用Observer模式
18.7 小结
复习题
简答题
阐述题
观点与应用题
第19章 Template Method模式
19.1 概览
19.2 案例研究的更多需求
19.3 Template Method模式
19.4 将Template Method模式应用到我们的案例研究
19.5 使用Template Method模式减少冗余
19.6 实践注记:使用Template Method模式
19.7 小结
复习题
简答题
阐述题
第七部分 各种工厂模式
第20章 来自设计模式的教益:各种工厂模式
20.1 概览
20.2 工厂
20.3 再谈背景
20.4 工厂遵循我们的准则
20.5 限制变化的影响
20.6 对工厂的另一种思考方式
20.7 工厂的不同角色
20.8 实践注记
20.9 小结
复习题
简答题
阐述题
观点与应用题
第21章 Singleton模式和Double-Checked Locking模式
21.1 概览
21.2 Singleton模式简介
21.3 将Singleton模式应用到我们的案例研究
21.4 一种变体:Double-Checked Locking模式
21.5 反思
21.6 实践注记:使用Singleton模式和Double-Checked Locking模式
21.7 小结
复习题
简答题
阐述题
观点与应用题
第22章 Object Pool模式
22.1 概览
22.2 一个需要对对象进行管理的问题
22.3 Object Pool模式
22.4 观察:工厂的作用不仅是实例化
22.5 小结
复习题
简答题
阐述题
观点与应用题
第23章 Factory Method模式
23.1 概览
23.2 案例研究的更多需求
23.3 Factory Method模式
23.4 Factory Method模式与面向对象语言
23.5 实践注记:使用Factory Method模式
23.6 小结
复习题
简答题
阐述题
观点与应用题
第24章 工厂模式的总结
24.1 概览
24.2 软件开发过程中的步骤
24.3 工厂与极限编程实践殊途同归
24.4 系统的扩展性
第八部分 终点与起点
第25章 设计模式回顾:总结与新起点
25.1 概览
25.2 面向对象原则的总结
25.3 设计模式如何封装实现
25.4 共性和可变性分析与设计模式
25.5 按责任分解问题域
25.6 模式和从背景设计
25.7 模式内部的关联
25.8 设计模式与敏捷编程实践
25.9 实践注记
25.10 小结
复习题
简答题
阐述题
观点与应用题
第26章 参考书目
26.1 本书配套网站
26.2 推荐阅读
26.3 针对Java程序员的推荐读物
26.4 针对C++程序员的推荐读物
26.5 针对COBOL程序员的推荐读物
26.6 极限编程的推荐读物
26.7 程序设计的一般性推荐读物
26.8 个人推荐
……