第1章 设计模式概述 1
1.1设计模式概念 2
1.2设计模式简史 2
1.3设计模式要素 3
1.4设计模式分类 5
1.4.1创建型 5
1.4.2结构型 6
1.4.3行为型 7
小结 8
练习 8
第2章 设计原则 10
2.1单一职责原则 12
2.1.1单一职责原则的定义 12
2.1.2单一职责原则的应用 13
2.2里氏替换原则 16
2.2.1里氏替换原则的定义 16
2.2.2里氏替换原则的应用 17
2.3依赖倒置原则 19
2.3.1依赖倒置原则的定义 19
2.3.2依赖倒置原则的应用 20
2.4接口隔离原则 23
2.4.1接口隔离原则的定义 23
2.4.2接口隔离原则的应用 24
2.5迪米特法则 27
2.5.1迪米特法则的定义 27
2.5.2迪米特法则的应用 28
2.6开闭原则 30
2.6.1开闭原则的定义 30
2.6.2开闭原则的应用 31
小结 35
练习 36
第3章 创建型模式 37
3.1创建型模式简述 39
3.2单例模式 39
3.2.1单例模式的定义 39
3.2.2单例模式的应用 41
3.2.3单例模式的实例 43
3.3工厂方法模式 44
3.3.1工厂方法模式的定义 45
3.3.2工厂方法模式的应用 47
3.3.3工厂方法模式的实例 48
3.4抽象工厂模式 51
3.4.1抽象工厂模式的定义 51
3.4.2抽象工厂模式的应用 52
3.4.3抽象工厂模式的实例 52
3.5建造者模式 55
3.5.1建造者模式的定义 55
3.5.2建造者模式的应用 57
3.5.3建造者模式的实例 58
3.6原型模式 65
3.6.1原型模式的定义 65
3.6.2原型模式的应用 66
3.6.3原型模式的实例 67
小结 69
练习 70
第4章 结构型模式 71
4.1结构型模式简述 73
4.2代理模式 73
4.2.1代理模式的定义 73
4.2.2代理模式的应用 75
4.2.3代理模式的实例 76
4.3装饰模式 78
4.3.1装饰模式的定义 78
4.3.2装饰模式的应用 80
4.3.3装饰模式的实例 81
4.4适配器模式 83
4.4.1适配器模式的定义 83
4.4.2适配器模式的应用 84
4.4.3适配器模式的实例 85
4.5组合模式 86
4.5.1组合模式的定义 86
4.5.2组合模式的应用 89
4.5.3组合模式的实例 89
4.6桥梁模式 93
4.6.1桥梁模式的定义 93
4.6.2桥梁模式的应用 95
4.6.3桥梁模式的实例 96
4.7外观模式 98
4.7.1外观模式的定义 98
4.7.2外观模式的应用 100
4.7.3外观模式的实例 100
4.8享元模式 103
4.8.1享元模式的定义 103
4.8.2享元模式的应用 105
4.8.3享元模式的实例 106
小结 108
练习 108
第5章 行为型模式(1) 110
5.1行为型模式简述 112
5.2模板方法模式 112
5.2.1模板方法模式的定义 112
5.2.2模板方法模式的应用 114
5.2.3模板方法模式的实例 114
5.3命令模式 116
5.3.1命令模式的定义 116
5.3.2命令模式的应用 118
5.3.3命令模式的实例 119
5.4责任链模式 122
5.4.1责任链模式的定义 122
5.4.2责任链模式的应用 124
5.4.3责任链模式的实例 124
5.5策略模式 128
5.5.1策略模式的定义 128
5.5.2策略模式的应用 130
5.5.3策略模式的实例 130
5.6迭代器模式 133
5.6.1迭代器模式的定义 134
5.6.2迭代器模式的应用 136
5.6.3迭代器模式的实例 137
小结 138
练习 139
第6章 行为型模式(2) 140
6.1中介者模式 142
6.1.1中介者模式的定义 142
6.1.2中介者模式的应用 145
6.1.3中介者模式的实例 145
6.2观察者模式 149
6.2.1观察者模式的定义 149
6.2.2观察者模式的应用 151
6.2.3观察者模式的实例 152
6.3备忘录模式 156
6.3.1备忘录模式的定义 156
6.3.2备忘录模式的应用 158
6.3.3备忘录模式的实例 159
6.4访问者模式 161
6.4.1访问者模式的定义 162
6.4.2访问者模式的应用 165
6.4.3访问者模式的实例 166
6.5状态模式 170
6.5.1状态模式的定义 170
6.5.2状态模式的应用 173
6.5.3状态模式的实例 174
6.6解释器模式 176
6.6.1解释器模式的定义 176
6.6.2解释器模式的应用 178
6.6.3解释器模式的实例 179
小结 182
练习 183
第7章 混合设计模式 185
7.1混合设计模式简介 187
7.2命令链模式 187
7.3工厂策略模式 199
7.4观察中介者模式 207
7.5规格模式 215
小结 222
练习 222
第8章 设计模式对比 223
8.1创建型模式对比 225
8.1.1工厂方法模式制造超人 225
8.1.2建造者模式制造超人 227
8.1.3抽象工厂模式制造超人 230
8.2结构型模式对比 233
8.2.1代理模式 234
8.2.2装饰模式 236
8.2.3适配器模式 238
8.3行为型模式对比 240
8.3.1策略模式 241
8.3.2命令模式 243
小结 247
练习 248
附录A 23种设计模式 249
附录B UML图标及Java实现 254