目录 1
第一篇 设计模式的基础 3
第1章 导言 3
1.1 UML建模的基本概念 4
1.2 模型 5
1.3 结构元素和图 6
1.3.1 小件:对象、类和接口 6
1.3.2 关系 11
1.3.3 结构图 20
1.3.4 大件:子系统、构件、包 21
1.4 行为元素和图 26
1.4.1 动作和活动 26
1.4.2 操作和方法 27
1.4.3 状态图 28
1.4.4 活动图 33
1.4.5 交互 35
1.5 用例和需求模型 38
1.5.1 捕捉黑箱行为无须揭示内部结构 40
1.6 何为设计模式 40
1.7 参考文献 43
第2章 体系结构与UML 44
2.1 体系结构 45
2.2 逻辑体系结构和物理体系结构 46
2.2.1 逻辑体系结构 48
2.2.2 物理体系结构 51
2.3 体系结构的5个视图 54
2.3.1 子系统和构件视图 55
2.3.2 并发和资源视图 57
2.3.3 分布视图 60
2.3.4 安全性和可靠性视图 63
2.3.5 部署视图 64
2.4 实现体系结构 65
2.4.1 缩略字世界:CORBA、UML和MDA基础 66
2.4.2 MDA出手营救 67
2.4.3 创建体系结构元素——模型层 68
2.4.4 子系统和构件视图 72
2.4.5 并发性和资源视图 72
2.4.6 分布视图 73
2.4.7 安全性和可靠性视图 73
2.4.8 部署视图 73
2.5 参考文献 74
第3章 设计模式的作用 75
3.2 ROPES开发过程 76
3.1 导言 76
3.2.1 何谓过程 77
3.2.2 ROFES过程概述 79
3.2.3 ROPES微周期的细节 91
3.2.4 聚议 92
3.2.5 用ROPES过程做分析 93
3.2.6 用ROPES过程做设计 95
3.2.7 翻译 97
3.2.8 测试 97
3.3 设计模式基础 98
3.3.1 何谓设计模式 98
3.3.2 设计模式的基本结构 100
3.3.3 如何阅读本书的设计模式 101
3.4.1 模式孵化——找到正确的模式 102
3.4 在开发中使用设计模式 102
3.4.2 模式挖掘——打磨出自己的模式 104
3.4.3 模式实例化——在设计中运用模式 104
3.5 参考文献 105
第二篇 体系结构设计的模式 112
第4章 子系统和构件体系结构模式 112
4.1 分层模式 112
4.1.1 抽象 112
4.1.2 问题 113
4.1.3 模式结构 113
4.1.4 协作角色 114
4.1.5 结论 114
4.1.6 实现策略 114
4.1.8 样例模型 115
4.1.7 相关模式 115
4.2 五层体系结构模式 116
4.2.1 抽象 116
4.2.2 问题 116
4.2.3 模式结构 117
4.2.4 协作角色 118
4.2.5 结论 118
4.2.6 实现策略 119
4.2.7 相关模式 119
4.2.8 样例模型 119
4.3 微内核体系结构模式 120
4.3.1 抽象 120
4.3.2 问题 120
4.3.3 模式结构 120
4.3.4 协作角色 121
4.3.6 实现策略 122
4.3.5 结论 122
4.3.7 相关模式 123
4.3.8 样例模型 123
4.4 通道体系结构模式 124
4.4.1 抽象 125
4.4.2 问题 125
4.4.3 模式结构 125
4.4.4 协作角色 126
4.4.5 结论 127
4.4.6 实现策略 127
4.4.7 相关模式 128
4.4.8 样例模型 128
4.5.1 抽象 129
4.5 递归包含模式 129
4.5.2 问题 130
4.5.3 模式结构 130
4.5.4 协作角色 131
4.5.5 结论 131
4.5.6 实现策略 131
4.5.7 相关模式 132
4.5.8 样例模型 132
4.6 层次控制模式 135
4.6.1 抽象 135
4.6.2 问题 136
4.6.3 模式结构 136
4.6.4 协作角色 137
4.6.5 结论 137
4.6.7 相关模式 138
4.6.6 实现策略 138
4.6.8 样例模型 139
4.7 虚拟机模式 140
4.7.1 抽象 140
4.7.2 问题 140
4.7.3 模式结构 141
4.7.4 协作角色 141
4.7.5 结论 143
4.7.6 实现策略 143
4.7.7 相关模式 146
4.8 基于构件体系结构 146
4.8.1 抽象 146
4.8.3 模式结构 147
4.8.2 问题 147
4.8.4 协作角色 148
4.8.5 结论 149
4.8.6 实现策略 149
4.8.7 相关模式 150
4.8.8 样例模型 150
4.9 ROOM模式 153
4.9.1 抽象 153
4.9.2 问题 154
4.9.3 模式结构 154
4.9.4 协作角色 154
4.9.5 结论 155
4.9.6 实现策略 155
4.9.7 相关模式 156
4.9.8 样例模型 156
4.10 参考文献 159
第5章 并发模式 160
5.1 介绍 161
5.2 并发模式 161
5.3 消息队列模式 163
5.3.1 抽象 164
5.3.2 问题 165
5.3.3 模式结构 165
5.3.4 协作角色 166
5.3.5 结论 166
5.3.6 实现策略 167
5.3.7 相关模式 167
5.3.8 样例模型 167
5.4.3 模式结构 169
5.4.2 问题 169
5.4.1 抽象 169
5.4 中断模式 169
5.4.4 协作角色 171
5.4.5 结论 171
5.4.6 实现策略 172
5.4.7 相关模式 173
5.4.8 样例模型 173
5.5 卫式调用模式 175
5.5.1 抽象 175
5.5.2 问题 175
5.5.3 模式结构 176
5.5.4 协作角色 176
5.5.5 结论 177
5.5.6 实现策略 177
5.5.7 相关模式 177
5.5.8 样例模型 178
5.6 会合模式 179
5.6.1 抽象 180
5.6.2 问题 180
5.6.3 模式结构 180
5.6.4 协作角色 181
5.6.5 结论 181
5.6.6 实现策略 181
5.6.7 相关模式 182
5.6.8 样例模型 182
5.7 循环执行模式 184
5.7.1 抽象 184
5.7.2 问题 184
5.7.3 模式结构 184
5.7.5 结论 185
5.7.4 协作角色 185
5.7.6 实现策略 186
5.7.7 相关模式 186
5.8 循环赛模式 188
5.8.1 抽象 188
5.8.2 问题 188
5.8.3 模式结构 188
5.8.4 协作角色 190
5.8.5 结论 191
5.8.6 实现策略 191
5.8.7 相关模式 191
5.8.8 样例模型 191
5.9.1 抽象 193
5.9.2 问题 193
5.9 静态优先级模式 193
5.9.3 模式结构 194
5.9.4 协作角色 195
5.9.5 结论 196
5.9.6 实现策略 197
5.9.7 相关模式 198
5.9.8 样例模型 198
5.10 动态优先级模式 200
5.10.1 抽象 200
5.10.2 问题 200
5.10.3 模式结构 201
5.10.4 协作角色 201
5.10.5 结论 203
5.10.6 实现策略 203
5.10.8 样例模型 204
5.10.7 相关模式 204
5.11 参考文献 206
第6章 内存模式 207
6.1 内存管理模式 208
6.2 静态分配模式 208
6.2.1 抽象 208
6.2.2 问题 208
6.2.3 模式结构 209
6.2.4 协作角色 210
6.2.5 结论 211
6.2.6 实现策略 211
6.2.7 相关模式 212
6.2.8 样例模型 212
6.3 池分配模式 213
6.3.1 抽象 213
6.3.3 模式结构 214
6.3.2 问题 214
6.3.4 协作角色 215
6.3.5 结论 215
6.3.6 实现策略 216
6.3.7 相关模式 218
6.3.8 样例模型 218
6.4 固定尺寸缓冲区模式 220
6.4.1 抽象 220
6.4.2 问题 220
6.4.3 模式结构 221
6.4.4 协作角色 222
6.4.5 结论 222
6.4.8 样例模型 223
6.4.7 相关模式 223
6.4.6 实现策略 223
6.5 灵巧指针模式 224
6.5.1 抽象 225
6.5.2 问题 225
6.5.3 模式结构 226
6.5.4 协作角色 227
6.5.5 结论 227
6.5.6 实现策略 229
6.5.7 相关模式 229
6.5.8 样例模型 229
6.6 垃圾收集模式 230
6.6.1 抽象 231
6.6.2 问题 231
6.6.3 模式结构 231
6.6.4 协作角色 232
6.6.5 结论 233
6.6.6 实现策略 233
6.6.7 相关模式 234
6.6.8 样例模型 234
6.7 垃圾紧凑器模式 236
6.7.1 抽象 236
6.7.2 问题 237
6.7.3 模式结构 237
6.7.4 协作角色 238
6.7.5 结论 239
6.7.6 实现策略 240
6.7.7 相关模式 240
6.7.8 样例模型 240
6.8 参考文献 242
第7章 资源模式 243
7.1 导引 244
7.2 临界区模式 249
7.2.1 抽象 249
7.2.2 问题 249
7.2.3 模式结构 249
7.2.4 协作角色 250
7.2.5 结论 251
7.2.6 实现策略 252
7.2.7 相关模式 252
7.2.8 样例模型 252
7.3 优先级继承模式 254
7.3.1 抽象 254
7.3.2 问题 254
7.3.3 模式结构 254
7.3.4 协作角色 255
7.3.5 结论 257
7.3.6 实现策略 260
7.3.7 相关模式 260
7.3.8 样例模型 260
7.4 最高加锁器模式 262
7.4.1 抽象 262
7.4.2 问题 263
7.4.3 模式结构 263
7.4.4 协作角色 264
7.4.5 结论 265
7.4.6 实现策略 266
7.4.7 相关模式 266
7.4.8 样例模型 266
7.5.2 问题 268
7.5.1 抽象 268
7.5 优先级最高限模式 268
7.5.3 模式结构 269
7.5.4 协作角色 271
7.5.5 结论 272
7.5.6 实现策略 273
7.5.7 相关模式 273
7.5.8 样例模型 273
7.6 同时锁定模式 275
7.6.1 抽象 275
7.6.2 问题 276
7.6.3 模式结构 276
7.6.4 协作角色 277
7.6.5 结论 278
7.6.7 相关模式 279
7.6.6 实现策略 279
7.6.8 样例模型 280
7.7 排序锁定模式 282
7.7.1 抽象 282
7.7.2 问题 282
7.7.3 模式结构 282
7.7.4 协作角色 284
7.7.5 结论 284
7.7.6 实现策略 285
7.7.7 相关模式 285
7.7.8 样例模型 285
7.8 参考文献 287
第8章 分布模式 289
8.1 导引 290
8.2 共享内存模式 291
8.2.1 抽象 292
8.2.2 问题 292
8.2.3 模式结构 292
8.2.4 协作角色 292
8.2.5 结论 294
8.2.6 实现策略 294
8.2.7 相关模式 295
8.2.8 样例模型 295
8.3 远程方法调用模式 297
8.3.1 抽象 297
8.3.2 问题 297
8.3.3 模式结构 297
8.3.4 协作角色 298
8.3.5 结论 299
8.3.6 实现策略 300
8.3.7 相关模式 301
8.3.8 样例模型 301
8.4 守望者模式 303
8.4.1 抽象 303
8.4.2 问题 303
8.4.3 模式结构 304
8.4.4 协作角色 305
8.4.5 结论 306
8.4.6 实现策略 306
8.4.7 相关模式 307
8.4.8 样例模型 307
8.5.3 模式结构 309
8.5.2 问题 309
8.5.1 抽象 309
8.5 数据总线模式 309
8.5.4 协作角色 311
8.5.5 结论 314
8.5.6 实现策略 315
8.5.7 相关模式 315
8.5.8 样例模型 315
8.6 代理模式 318
8.6.1 抽象 318
8.6.2 问题 318
8.6.3 模式结构 319
8.6.4 协作角色 320
8.6.5 结论 321
8.6.7 相关模式 322
8.6.8 样例模型 322
8.6.6 实现策略 322
8.7 中介模式 325
8.7.1 抽象 325
8.7.2 问题 325
8.7.3 模式结构 325
8.7.4 协作角色 327
8.7.5 结论 328
8.7.6 实现策略 329
8.7.7 相关模式 330
8.7.8 样例模型 330
8.8 参考文献 331
第9章 安全性和可靠性模式 333
9.1 导引 334
9.1.1 处理故障 336
9.2.2 问题 337
9.2.3 模式结构 337
9.2 保护式单通道模式 337
9.2.1 抽象 337
9.2.4 协作角色 338
9.2.5 结论 339
9.2.6 实现策略 340
9.2.7 相关模式 340
9.2.8 样例模型 340
9.3 同质冗余模式 342
9.3.1 抽象 342
9.3.2 问题 342
9.3.3 模式结构 342
9.3.4 协作角色 343
9.3.5 结论 344
9.3.8 样例模型 345
9.3.7 相关模式 345
9.3.6 实现策略 345
9.4 三模块冗余模式 347
9.4.1 抽象 347
9.4.2 问题 347
9.4.3 模式结构 347
9.4.4 协作角色 348
9.4.5 结论 349
9.4.6 实现策略 349
9.4.7 相关模式 349
9.4.8 样例模型 350
9.5 异质冗余模式 351
9.5.1 抽象 351
9.5.2 问题 351
9.5.4 协作角色 352
9.5.3 模式结构 352
9.5.5 结论 353
9.5.6 实现策略 354
9.5.7 相关模式 354
9.5.8 样例模型 354
9.6 监视器-执行器模式 355
9.6.1 抽象 355
9.6.2 问题 356
9.6.3 模式结构 356
9.6.4 协作角色 356
9.6.5 结论 358
9.6.6 实现策略 358
9.6.7 相关模式 359
9.6.8 样例模型 359
9.7.1 抽象 360
9.7 心智检查模式 360
9.7.2 问题 361
9.7.3 模式结构 361
9.7.4 协作角色 361
9.7.5 结论 363
9.7.6 实现策略 363
9.7.7 相关模式 363
9.7.8 样例模型 363
9.8 看门狗模式 364
9.8.1 抽象 364
9.8.2 问题 365
9.8.3 模式结构 365
9.8.4 协作角色 367
9.8.6 实现策略 368
9.8.5 结论 368
9.8.7 相关模式 369
9.8.8 样例模型 369
9.9 安全执行模式 370
9.9.1 抽象 370
9.9.2 问题 370
9.9.3 模式结构 370
9.9.4 协作角色 371
9.9.5 结论 373
9.9.6 实现策略 373
9.9.7 相关模式 373
9.9.8 样例模型 374
9.10 参考文献 375
附录A 表示法总结 376
附录B 模式索引 392