第1章 统一建模语言基础知识 1
1.1 UML简介 1
1.1.1 UML的诞生 1
1.1.2 UML的结构 2
1.1.3 UML的特点 4
1.2 类图 5
1.2.1 类与类图 5
1.2.2 类之间的关系 7
1.2.3 类图实例 15
1.3 顺序图 16
1.3.1 顺序图定义 17
1.3.2 顺序图组成元素与绘制 17
1.3.3 顺序图实例 19
1.4 状态图 20
1.4.1 状态图定义 20
1.4.2 状态图组成元素与绘制 21
1.4.3 状态图实例 21
1.5 本章小结 22
思考与练习 23
第2章 面向对象设计原则 24
2.1 面向对象设计原则概述 24
2.1.1 软件的可维护性和可复用性 24
2.1.2 面向对象设计原则简介 26
2.2 单一职责原则 27
2.2.1 单一职责原则定义 27
2.2.2 单一职责原则分析 27
2.2.3 单一职责原则实例 27
2.3 开闭原则 29
2.3.1 开闭原则定义 29
2.3.2 开闭原则分析 29
2.3.3 开闭原则实例 29
2.4 里氏代换原则 31
2.4.1 里氏代换原则定义 31
2.4.2 里氏代换原则分析 31
2.4.3 里氏代换原则实例 32
2.5 依赖倒转原则 34
2.5.1 依赖倒转原则定义 34
2.5.2 依赖倒转原则分析 34
2.5.3 依赖倒转原则实例 37
2.6 接口隔离原则 39
2.6.1 接口隔离原则定义 39
2.6.2 接口隔离原则分析 39
2.6.3 接口隔离原则实例 40
2.7 合成复用原则 41
2.7.1 合成复用原则定义 41
2.7.2 合成复用原则分析 41
2.7.3 合成复用原则实例 42
2.8 迪米特法则 43
2.8.1 迪米特法则定义 43
2.8.2 迪米特法则分析 44
2.8.3 迪米特法则实例 45
2.9 本章小结 46
思考与练习 46
第3章 设计模式概述 48
3.1 设计模式的诞生与发展 48
3.1.1 模式的诞生与定义 48
3.1.2 软件模式 50
3.1.3 设计模式的发展 50
3.2 设计模式的定义与分类 52
3.2.1 设计模式的定义 52
3.2.2 设计模式的基本要素 52
3.2.3 设计模式的分类 53
3.3 GoF设计模式简介 54
3.4 设计模式的优点 56
3.5 本章小结 56
思考与练习 57
第4章 简单工厂模式 58
4.1 创建型模式 58
4.1.1 创建型模式概述 58
4.1.2 创建型模式简介 59
4.2 简单工厂模式动机与定义 60
4.2.1 模式动机 60
4.2.2 模式定义 61
4.3 简单工厂模式结构与分析 61
4.3.1 模式结构 61
4.3.2 模式分析 62
4.4 简单工厂模式实例与解析 64
4.4.1 简单工厂模式实例之简单电视机工厂 64
4.4.2 简单工厂模式实例之权限管理 69
4.5 简单工厂模式效果与应用 73
4.5.1 模式优缺点 73
4.5.2 模式适用环境 74
4.5.3 模式应用 74
4.6 简单工厂模式扩展 75
4.7 本章小结 75
思考与练习 76
第5章 工厂方法模式 77
5.1 工厂方法模式动机与定义 77
5.1.1 简单工厂模式的不足 77
5.1.2 模式动机 78
5.1.3 模式定义 78
5.2 工厂方法模式结构与分析 79
5.2.1 模式结构 79
5.2.2 模式分析 80
5.3 工厂方法模式实例与解析 83
5.3.1 工厂方法模式实例之电视机工厂 83
5.3.2 工厂方法模式实例之日志记录器 87
5.4 工厂方法模式效果与应用 88
5.4.1 模式优缺点 88
5.4.2 模式适用环境 88
5.4.3 模式应用 89
5.5 工厂方法模式扩展 90
5.6 本章小结 91
思考与练习 91
第6章 抽象工厂模式 92
6.1 抽象工厂模式动机与定义 92
6.1.1 模式动机 92
6.1.2 模式定义 94
6.2 抽象工厂模式结构与分析 94
6.2.1 模式结构 94
6.2.2 模式分析 94
6.3 抽象工厂模式实例与解析 97
6.3.1 抽象工厂模式实例之电器工厂 97
6.3.2 抽象工厂模式实例之数据库操作工厂 102
6.4 抽象工厂模式效果与应用 102
6.4.1 模式优缺点 102
6.4.2 模式适用环境 103
6.4.3 模式应用 103
6.5 抽象工厂模式扩展 104
6.6 本章小结 104
思考与练习 105
第7章 建造者模式 106
7.1 建造者模式动机与定义 106
7.1.1 模式动机 106
7.1.2 模式定义 107
7.2 建造者模式结构与分析 107
7.2.1 模式结构 107
7.2.2 模式分析 108
7.3 建造者模式实例与解析 110
7.4 建造者模式效果与应用 115
7.4.1 模式优缺点 115
7.4.2 模式适用环境 115
7.4.3 模式应用 115
7.5 建造者模式扩展 116
7.6 本章小结 117
思考与练习 117
第8章 原型模式 119
8.1 原型模式动机与定义 119
8.1.1 模式动机 119
8.1.2 模式定义 120
8.2 原型模式结构与分析 120
8.2.1 模式结构 120
8.2.2 模式分析 121
8.3 原型模式实例与解析 123
8.3.1 原型模式实例之邮件复制(浅克隆) 123
8.3.2 原型模式实例之邮件复制(深克隆) 126
8.4 原型模式效果与应用 129
8.4.1 模式优缺点 129
8.4.2 模式适用环境 129
8.4.3 模式应用 130
8.5 原型模式扩展 130
8.6 本章小结 135
思考与练习 135
第9章 单例模式 136
9.1 单例模式动机与定义 136
9.1.1 模式动机 136
9.1.2 模式定义 137
9.2 单例模式结构与分析 137
9.2.1 模式结构 137
9.2.2 模式分析 138
9.3 单例模式实例与解析 139
9.3.1 单例模式实例之身份证号码 139
9.3.2 单例模式实例之打印池 141
9.4 单例模式效果与应用 144
9.4.1 模式优缺点 144
9.4.2 模式适用环境 144
9.4.3 模式应用 145
9.5 单例模式扩展 145
9.6 本章小结 147
思考与练习 147
第10章 适配器模式 149
10.1 结构型模式 149
10.1.1 结构型模式概述 149
10.1.2 结构型模式简介 150
10.2 适配器模式动机与定义 151
10.2.1 模式动机 151
10.2.2 模式定义 152
10.3 适配器模式结构与分析 152
10.3.1 模式结构 152
10.3.2 模式分析 153
10.4 适配器模式实例与解析 155
10.4.1 适配器模式实例之仿生机器人 155
10.4.2 适配器模式实例之加密适配器 158
10.5 适配器模式效果与应用 162
10.5.1 模式优缺点 162
10.5.2 模式适用环境 163
10.5.3 模式应用 163
10.6 适配器模式扩展 164
10.6.1 缺省适配器模式 164
10.6.2 双向适配器 166
10.7 本章小结 167
思考与练习 167
第11章 桥接模式 168
11.1 桥接模式动机与定义 168
11.1.1 模式动机 168
11.1.2 模式定义 169
11.2 桥接模式结构与分析 169
11.2.1 模式结构 170
11.2.2 模式分析 171
11.3 桥接模式实例与解析 173
11.3.1 桥接模式实例之模拟毛笔 173
11.3.2 桥接模式实例之跨平台视频播放器 179
11.4 桥接模式效果与应用 179
11.4.1 模式优缺点 179
11.4.2 模式适用环境 180
11.4.3 模式应用 180
11.5 桥接模式扩展 181
11.6 本章小结 182
思考与练习 183
第12章 组合模式 184
12.1 组合模式动机与定义 184
12.1.1 模式动机 184
12.1.2 模式定义 185
12.2 组合模式结构与分析 186
12.2.1 模式结构 186
12.2.2 模式分析 187
12.3 组合模式实例与解析 189
12.3.1 组合模式实例之水果盘 189
12.3.2 组合模式实例之文件浏览 193
12.4 组合模式效果与应用 193
12.4.1 模式优缺点 193
12.4.2 模式适用环境 194
12.4.3 模式应用 194
12.5 组合模式扩展 195
12.6 本章小结 196
思考与练习 197
第13章 装饰模式 198
13.1 装饰模式动机与定义 198
13.1.1 模式动机 198
13.1.2 模式定义 199
13.2 装饰模式结构与分析 200
13.2.1 模式结构 200
13.2.2 模式分析 201
13.3 装饰模式实例与解析 202
13.3.1 装饰模式实例之变形金刚 202
13.3.2 装饰模式实例之多重加密系统 206
13.4 装饰模式效果与应用 211
13.4.1 模式优缺点 211
13.4.2 模式适用环境 212
13.4.3 模式应用 212
13.5 装饰模式扩展 214
13.6 本章小结 216
思考与练习 216
第14章 外观模式 217
14.1 外观模式动机与定义 217
14.1.1 模式动机 217
14.1.2 模式定义 218
14.2 外观模式结构与分析 219
14.2.1 模式结构 219
14.2.2 模式分析 219
14.3 外观模式实例与解析 220
14.3.1 外观模式实例之电源总开关 221
14.3.2 外观模式实例之文件加密 225
14.4 外观模式效果与应用 225
14.4.1 模式优缺点 225
14.4.2 模式适用环境 226
14.4.3 模式应用 226
14.5 外观模式扩展 228
14.6 本章小结 229
思考与练习 230
第15章 享元模式 231
15.1 享元模式动机与定义 231
15.1.1 模式动机 231
15.1.2 模式定义 232
15.2 享元模式结构与分析 232
15.2.1 模式结构 232
15.2.2 模式分析 233
15.3 享元模式实例与解析 235
15.3.1 享元模式实例之共享网络设备(无外部状态) 235
15.3.2 享元模式实例之共享网络设备(有外部状态) 239
15.4 享元模式效果与应用 243
15.4.1 模式优缺点 243
15.4.2 模式适用环境 243
15.4.3 模式应用 243
15.5 享元模式扩展 244
15.6 本章小结 245
思考与练习 246
第16章 代理模式 247
16.1 代理模式动机与定义 247
16.1.1 模式动机 247
16.1.2 模式定义 248
16.2 代理模式结构与分析 248
16.2.1 模式结构 248
16.2.2 模式分析 249
16.3 代理模式实例与解析 250
16.3.1 代理模式实例之论坛权限控制代理 250
16.3.2 代理模式实例之日志记录代理 254
16.4 代理模式效果与应用 255
16.4.1 模式优缺点 255
16.4.2 模式适用环境 255
16.4.3 模式应用 256
16.5 代理模式扩展 257
16.6 本章小结 261
思考与练习 261
第17章 职责链模式 262
17.1 行为型模式 262
17.1.1 行为型模式概述 262
17.1.2 行为型模式简介 263
17.2 职责链模式动机与定义 265
17.2.1 模式动机 265
17.2.2 模式定义 266
17.3 职责链模式结构与分析 266
17.3.1 模式结构 266
17.3.2 模式分析 267
17.4 职责链模式实例与解析 268
17.5 职责链模式效果与应用 273
17.5.1 模式优缺点 273
17.5.2 模式适用环境 274
17.5.3 模式应用 274
17.6 职责链模式扩展 275
17.7 本章小结 275
思考与练习 276
第18章 命令模式 277
18.1 命令模式动机与定义 277
18.1.1 模式动机 277
18.1.2 模式定义 278
18.2 命令模式结构与分析 278
18.2.1 模式结构 278
18.2.2 模式分析 279
18.3 命令模式实例与解析 281
18.3.1 命令模式实例之电视机遥控器 281
18.3.2 命令模式实例之功能键设置 286
18.4 命令模式效果与应用 286
18.4.1 模式优缺点 286
18.4.2 模式适用环境 287
18.4.3 模式应用 287
18.5 命令模式扩展 288
18.6 本章小结 291
思考与练习 291
第19章 解释器模式 293
19.1 解释器模式动机与定义 293
19.1.1 模式动机 293
19.1.2 模式定义 294
19.2 解释器模式结构与分析 294
19.2.1 模式结构 294
19.2.2 模式分析 295
19.3 解释器模式实例与解析 298
19.4 解释器模式效果与应用 303
19.4.1 模式优缺点 303
19.4.2 模式适用环境 304
19.4.3 模式应用 304
19.5 解释器模式扩展 304
19.6 本章小结 305
思考与练习 306
第20章 迭代器模式 307
20.1 迭代器模式动机与定义 307
20.1.1 模式动机 307
20.1.2 模式定义 308
20.2 迭代器模式结构与分析 308
20.2.1 模式结构 308
20.2.2 模式分析 309
20.3 迭代器模式实例与解析 313
20.4 迭代器模式效果与应用 318
20.4.1 模式优缺点 318
20.4.2 模式适用环境 319
20.4.3 模式应用 319
20.5 迭代器模式扩展 321
20.6 本章小结 322
思考与练习 322
第21章 中介者模式 323
21.1 中介者模式动机与定义 323
21.1.1 模式动机 323
21.1.2 模式定义 324
21.2 中介者模式结构与分析 325
21.2.1 模式结构 325
21.2.2 模式分析 326
21.3 中介者模式实例与解析 328
21.4 中介者模式效果与应用 334
21.4.1 模式优缺点 334
21.4.2 模式适用环境 334
21.4.3 模式应用 334
21.5 中介者模式扩展 335
21.6 本章小结 335
思考与练习 336
第22章 备忘录模式 337
22.1 备忘录模式动机与定义 337
22.1.1 模式动机 337
22.1.2 模式定义 338
22.2 备忘录模式结构与分析 338
22.2.1 模式结构 338
22.2.2 模式分析 339
22.3 备忘录模式实例与解析 342
22.4 备忘录模式效果与应用 346
22.4.1 模式优缺点 346
22.4.2 模式适用环境 347
22.4.3 模式应用 347
22.5 备忘录模式扩展 347
22.6 本章小结 348
思考与练习 348
第23章 观察者模式 349
23.1 观察者模式动机与定义 349
23.1.1 模式动机 349
23.1.2 模式定义 350
23.2 观察者模式结构与分析 351
23.2.1 模式结构 351
23.2.2 模式分析 352
23.3 观察者模式实例与解析 354
23.3.1 观察者模式实例之猫、狗与老鼠 354
23.3.2 观察者模式实例之自定义登录控件 358
23.4 观察者模式效果与应用 365
23.4.1 模式优缺点 365
23.4.2 模式适用环境 366
23.4.3 模式应用 366
23.5 观察者模式扩展 367
23.6 本章小结 368
思考与练习 369
第24章 状态模式 370
24.1 状态模式动机与定义 370
24.1.1 模式动机 370
24.1.2 模式定义 371
24.2 状态模式结构与分析 372
24.2.1 模式结构 372
24.2.2 模式分析 372
24.3 状态模式实例与解析 375
24.3.1 状态模式实例之论坛用户等级 375
24.3.2 状态模式实例之银行账户 382
24.4 状态模式效果与应用 383
24.4.1 模式优缺点 383
24.4.2 模式适用环境 384
24.4.3 模式应用 384
24.5 状态模式扩展 384
24.6 本章小结 387
思考与练习 388
第25章 策略模式 389
25.1 策略模式动机与定义 389
25.1.1 模式动机 389
25.1.2 模式定义 390
25.2 策略模式结构与分析 390
25.2.1 模式结构 391
25.2.2 模式分析 391
25.3 策略模式实例与解析 393
25.3.1 策略模式实例之排序策略 393
25.3.2 策略模式实例之旅游出行策略 399
25.4 策略模式效果与应用 399
25.4.1 模式优缺点 399
25.4.2 模式适用环境 400
25.4.3 模式应用 400
25.5 策略模式扩展 402
25.6 本章小结 402
思考与练习 403
第26章 模板方法模式 404
26.1 模板方法模式动机与定义 404
26.1.1 模式动机 404
26.1.2 模式定义 405
26.2 模板方法模式结构与分析 406
26.2.1 模式结构 406
26.2.2 模式分析 406
26.3 模板方法模式实例与解析 409
26.3.1 模板方法模式实例之银行业务办理流程 409
26.3.2 模板方法模式实例之数据库操作模板 412
26.4 模板方法模式效果与应用 412
26.4.1 模式优缺点 412
26.4.2 模式适用环境 413
26.4.3 模式应用 413
26.5 模板方法模式扩展 414
26.6 本章小结 416
思考与练习 417
第27章 访问者模式 418
27.1 访问者模式动机与定义 418
27.1.1 模式动机 418
27.1.2 模式定义 419
27.2 访问者模式结构与分析 419
27.2.1 模式结构 420
27.2.2 模式分析 421
27.3 访问者模式实例与解析 423
27.3.1 访问者模式实例之购物车 423
27.3.2 访问者模式实例之奖励审批系统 428
27.4 访问者模式效果与应用 429
27.4.1 模式优缺点 429
27.4.2 模式适用环境 430
27.4.3 模式应用 430
27.5 访问者模式扩展 431
27.6 本章小结 431
思考与练习 432
参考文献 433