内容简介
第1章 设计模式概述
1.1 设计模式的诞生与发展
1.1.1 模式的诞生与定义
1.1.2 软件模式概述
1.1.3 设计模式的发展
1.2 设计模式的定义与分类
1.2.1 设计模式的定义
1.2.2 设计模式的基本要素
1.2.3 设计模式的分类
1.3 GoF设计模式简介
1.4 设计模式的优点
1.5 本章小结
1.6 习题
第2章 面向对象设计原则
2.1 面向对象设计原则概述
2.2 单一职责原则
2.3 开闭原则
2.4 里氏代换原则
2.5 依赖倒转原则
2.6 接口隔离原则
2.7 合成复用原则
2.8 迪米特法则
2.9 本章小结
2.10 习题
第3章 简单工厂模式
3.1 创建型模式
3.2 简单工厂模式概述
3.3 简单工厂模式的结构与实现
3.3.1 简单工厂模式的结构
3.3.2 简单工厂模式的实现
3.4 简单工厂模式的应用实例
3.5 创建对象与使用对象
3.6 简单工厂模式的简化
3.7 简单工厂模式的优缺点与适用环境
3.7.1 简单工厂模式的优点
3.7.2 简单工厂模式的缺点
3.7.3 简单工厂模式的适用环境
3.8 本章小结
3.9 习题
第4章 工厂方法模式
4.1 工厂方法模式概述
4.2 工厂方法模式的结构与实现
4.2.1 工厂方法模式的结构
4.2.2 工厂方法模式的实现
4.3 工厂方法模式的应用实例
4.4 配置文件与反射
4.5 工厂方法的重载
4.6 工厂方法的隐藏
4.7 工厂方法模式的优缺点与适用环境
4.7.1 工厂方法模式的优点
4.7.2 工厂方法模式的缺点
4.7.3 工厂方法模式的适用环境
4.8 本章小结
4.9 习题
第5章 抽象工厂模式
5.1 产品等级结构与产品族
5.2 抽象工厂模式概述
5.3 抽象工厂模式的结构与实现
5.3.1 抽象工厂模式的结构
5.3.2 抽象工厂模式的实现
5.4 抽象工厂模式的应用实例
5.5 开闭原则的倾斜性
5.6 抽象工厂模式的优缺点与适用环境
5.6.1 抽象工厂模式的优点
5.6.2 抽象工厂模式的缺点
5.6.3 抽象工厂模式的适用环境
5.7 本章小结
5.8 习题
第6章 建造者模式
6.1 建造者模式概述
6.2 建造者模式的结构与实现
6.2.1 建造者模式的结构
6.2.2 建造者模式的实现
6.3 建造者模式的应用实例
6.4 指挥者类的深入讨论
6.5 建造者模式的优缺点与适用环境
6.5.1 建造者模式的优点
6.5.2 建造者模式的缺点
6.5.3 建造者模式的适用环境
6.6 本章小结
6.7 习题
第7章 原型模式
7.1 原型模式概述
7.2 原型模式的结构与实现
7.2.1 原型模式的结构
7.2.2 浅克隆与深克隆
7.2.3 原型模式的实现
7.3 原型模式的应用实例
7.4 原型管理器
7.5 原型模式的优缺点与适用环境
7.5.1 原型模式的优点
7.5.2 原型模式的缺点
7.5.3 原型模式的适用环境
7.6 本章小结
7.7 习题
第8章 单例模式
8.1 单例模式概述
8.2 单例模式的结构与实现
8.2.1 单例模式的结构
8.2.2 单例模式的实现
8.3 单例模式的应用实例
8.4 饿汉式单例与懒汉式单例
8.5 单例模式的优缺点与适用环境
8.5.1 单例模式的优点
8.5.2 单例模式的缺点
8.5.3 单例模式的适用环境
8.6 本章小结
8.7 习题
第9章 适配器模式
9.1 结构型模式
9.2 适配器模式概述
9.3 适配器模式的结构与实现
9.3.1 适配器模式的结构
9.3.2 适配器模式的实现
9.4 适配器模式的应用实例
9.5 缺省适配器模式
9.6 双向适配器
9.7 适配器模式的优缺点与适用环境
9.7.1 适配器模式的优点
9.7.2 适配器模式的缺点
9.7.3 适配器模式的适用环境
9.8 本章小结
9.9 习题
第10章 桥接模式
10.1 桥接模式概述
10.2 桥接模式的结构与实现
10.2.1 桥接模式的结构
10.2.2 桥接模式的实现
10.3 桥接模式的应用实例
10.4 桥接模式与适配器模式联用
10.5 桥接模式的优缺点与适用环境
10.5.1 桥接模式的优点
10.5.2 桥接模式的缺点
10.5.3 桥接模式的适用环境
10.6 本章小结
10.7 习题
第11章 组合模式
11.1 组合模式概述
11.2 组合模式的结构与实现
11.2.1 组合模式的结构
11.2.2 组合模式的实现
11.3 组合模式的应用实例
11.4 透明组合模式与安全组合模式
11.5 组合模式的优缺点与适用环境
11.5.1 组合模式的优点
11.5.2 组合模式的缺点
11.5.3 组合模式的适用环境
11.6 本章小结
11.7 习题
第12章 装饰模式
12.1 装饰模式概述
12.2 装饰模式的结构与实现
12.2.1 装饰模式的结构
12.2.2 装饰模式的实现
12.3 装饰模式的应用实例
12.4 透明装饰模式与半透明装饰模式
12.5 装饰模式的优缺点与适用环境
12.5.1 装饰模式的优点
12.5.2 装饰模式的缺点
12.5.3 装饰模式的适用环境
12.6 本章小结
12.7 习题
第13章 外观模式
13.1 外观模式概述
13.2 外观模式的结构与实现
13.2.1 外观模式的结构
13.2.2 外观模式的实现
13.3 外观模式的应用实例
13.4 抽象外观类
13.5 外观模式的优缺点与适用环境
13.5.1 外观模式的优点
13.5.2 外观模式的缺点
13.5.3 外观模式的适用环境
13.6 本章小结
13.7 习题
第14章 享元模式
14.1 享元模式概述
14.2 享元模式的结构与实现
14.2.1 享元模式的结构
14.2.2 享元模式的实现
14.3 享元模式的应用实例
14.4 有外部状态的享元模式
14.5 单纯享元模式和复合享元模式
14.6 享元模式的优缺点与适用环境
14.6.1 享元模式的优点
14.6.2 享元模式的缺点
14.6.3 享元模式的适用环境
14.7 本章小结
14.8 习题
第15章 代理模式
15.1 代理模式概述
15.2 代理模式的结构与实现
15.2.1 代理模式的结构
15.2.2 代理模式的实现
15.3 代理模式的应用实例
15.4 远程代理
15.5 虚拟代理
15.6 缓冲代理
15.7 代理模式的优缺点与适用环境
15.7.1 代理模式的优点
15.7.2 代理模式的缺点
15.7.3 代理模式的适用环境
15.8 本章小结
15.9 习题
第16章 职责链模式
16.1 行为型模式
16.2 职责链模式概述
16.3 职责链模式的结构与实现
16.3.1 职责链模式的结构
16.3.2 职责链模式的实现
16.4 职责链模式的应用实例
16.5 纯与不纯的职责链模式
16.6 职责链模式的优缺点与适用环境
16.6.1 职责链模式的优点
16.6.2 职责链模式的缺点
16.6.3 职责链模式的适用环境
16.7 本章小结
16.8 习题
第17章 命令模式
17.1 命令模式概述
17.2 命令模式的结构与实现
17.2.1 命令模式的结构
17.2.2 命令模式的实现
17.3 命令模式的应用实例
17.4 实现命令队列
17.5 记录请求日志
17.6 实现撤销操作
17.7 宏命令
17.8 命令模式的优缺点与适用环境
17.8.1 命令模式的优点
17.8.2 命令模式的缺点
17.8.3 命令模式的适用环境
17.9 本章小结
17.10 习题
第18章 解释器模式
18.1 解释器模式概述
18.2 文法规则和抽象语法树
18.3 解释器模式的结构与实现
18.3.1 解释器模式的结构
18.3.2 解释器模式的实现
18.4 解释器模式的应用实例
18.5 解释器模式的优缺点与适用环境
18.5.1 解释器模式的优点
18.5.2 解释器模式的缺点
18.5.3 解释器模式的适用环境
18.6 本章小结
18.7 习题
第19章 迭代器模式
19.1 迭代器模式概述
19.2 迭代器模式的结构与实现
19.2.1 迭代器模式的结构
19.2.2 迭代器模式的实现
19.3 迭代器模式的应用实例
19.4 使用内部类实现迭代器
19.5 .NET内置迭代器
19.6 迭代器模式的优缺点与适用环境
19.6.1 迭代器模式的优点
19.6.2 迭代器模式的缺点
19.6.3 迭代器模式的适用环境
19.7 本章小结
19.8 习题
第20章 中介者模式
20.1 中介者模式概述
20.2 中介者模式的结构与实现
20.2.1 中介者模式的结构
20.2.2 中介者模式的实现
20.3 中介者模式的应用实例
20.4 扩展中介者与同事类
20.5 中介者模式的优缺点与适用环境
20.5.1 中介者模式的优点
20.5.2 中介者模式的缺点
20.5.3 中介者模式的适用环境
20.6 本章小结
20.7 习题
第21章 备忘录模式
21.1 备忘录模式概述
21.2 备忘录模式的结构与实现
21.2.1 备忘录模式的结构
21.2.2 备忘录模式的实现
21.3 备忘录模式的应用实例
21.4 实现多次撤销
21.5 备忘录模式的优缺点与适用环境
21.5.1 备忘录模式的优点
21.5.2 备忘录模式的缺点
21.5.3 备忘录模式的适用环境
21.6 本章小结
21.7 习题
第22章 观察者模式
22.1 观察者模式概述
22.2 观察者模式的结构与实现
22.2.1 观察者模式的结构
22.2.2 观察者模式的实现
22.3 观察者模式的应用实例
22.4 观察者模式与.NET中的委托事件模型
22.5 观察者模式与MVC
22.6 观察者模式的优缺点与适用环境
22.6.1 观察者模式的优点
22.6.2 观察者模式的缺点
22.6.3 观察者模式的适用环境
22.7 本章小结
22.8 习题
第23章 状态模式
23.1 状态模式概述
23.2 状态模式的结构与实现
23.2.1 状态模式的结构
23.2.2 状态模式的实现
23.3 状态模式的应用实例
23.4 共享状态
23.5 使用环境类实现状态的转换
23.6 状态模式的优缺点与适用环境
23.6.1 状态模式的优点
23.6.2 状态模式的缺点
23.6.3 状态模式的适用环境
23.7 本章小结
23.8 习题
第24章 策略模式
24.1 策略模式概述
24.2 策略模式的结构与实现
24.2.1 策略模式的结构
24.2.2 策略模式的实现
24.3 策略模式的应用实例
24.4 PetShop 4.0中的订单处理
24.5 策略模式的优缺点与适用环境
24.5.1 策略模式的优点
24.5.2 策略模式的缺点
24.5.3 策略模式的适用环境
24.6 本章小结
24.7 习题
第25章 模板方法模式
25.1 模板方法模式概述
25.2 模板方法模式的结构与实现
25.2.1 模板方法模式的结构
25.2.2 模板方法模式的实现
25.3 模板方法模式的应用实例
25.4 钩子方法的使用
25.5 模板方法模式的优缺点与适用环境
25.5.1 模板方法模式的优点
25.5.2 模板方法模式的缺点
25.5.3 模板方法模式的适用环境
25.6 本章小结
25.7 习题
第26章 访问者模式
26.1 访问者模式概述
26.2 访问者模式的结构与实现
26.2.1 访问者模式的结构
26.2.2 访问者模式的实现
26.3 访问者模式的应用实例
26.4 访问者模式与组合模式联用
26.5 访问者模式的优缺点与适用环境
26.5.1 访问者模式的优点
26.5.2 访问者模式的缺点
26.5.3 访问者模式的适用环境
26.6 本章小结
26.7 习题
附录A UML类图
A.1 UML概述
A.2 类与类的UML表示
A.3 类之间的关系
附录B 设计模式模拟试题
B.1 模拟试题一
B.2 模拟试题二
参考文献