第1部分 框架和组件 4
第1章 功能点选 4
第2章 一套基于工具和材料比喻的工具构造和集成模式语言 6
背景和动机 6
总体方法 7
中心思想和设计比喻 7
设计比喻和设计模式之间的区别 8
工具和材料比喻 9
工具构造和集成设计模式 12
图形符号 12
设计模式线路图 12
工具构造设计模式 14
单个工具设计模式的应用 22
工具集成 23
扩展范例 23
工具集成设计模式 24
展望:系统边界 27
实际运转的工具和材料 28
工具和材料比喻 30
展望 30
致谢 30
参考文献 31
第3章 灵活的命令解释器:一个可扩展、语言无关解释器系统模式 33
第4章 旧服务器,新客户端:一套客户/服务器框架模式语言 39
介绍 39
关于具体化(REIFICATION)的注解 40
例外(Exception) 40
单人游戏(SOLITAIRE) 41
记录对象(OBJECTS FROM RECORDS) 41
请求(REQUEST) 42
实物化(MATERIALIZATION) 42
终结化(FINALIZATION) 43
身份管理(IDENTITY MANAGEMENT) 43
巨滚(MEGA-SCROLLING) 44
搜索业务对象(SEARCHING BUSINESS OBJECTS) 44
依赖性(DEPENDENCY)(模型—视图、广播、观察者、MVC) 45
创建和更新业务对象(CREATING AND UPDATING BUSINESS OBJECTS) 45
工厂方法(Factory Method) 46
窗口保管(WINDOW-KEEPING) 46
察看(VIEWING) 47
一个客户/服务器框架(A CLIENT/SERVER FRAME-WORK) 47
结论 47
致谢 48
参考文献 48
第2部分 系统和分布式处理 54
第5章 一套生成式的分布处理模式语言 54
对模式和它们用途的一些思考 54
朝着一套分布式计算的模式语言前进 55
名称:定义数据结构(DEFINE THE DATA STRUCTURE) 55
名称:确定名词(IDENTITY THE NOUNS) 56
名称:抽取公用属性(FACTOR OUT COMMON ATTRIBUTE) 57
名称:规范化角色(NORMALIZE THE ROLES) 59
名称:确定问题领域关系(IDENTIFY PROBLEM DOMAIN RELATIONSHIPS) 61
名称:引入虚拟属性(INTRODUCE VIRTUAL ATTRIBUTES) 62
名称:激活数据(ANIMATE THE DATA) 63
名称:时间线索分析(TIME THREAD ANALYSIS) 64
命名:决定参与者(DETERMINE THE ACTORS) 64
原始会议模式 65
参考文献 68
第6章 G++:一套计算机集成制造模式语言 69
摘要 69
介绍 69
应用领域 70
论文组织 70
模式语言 70
模式1 控制层次的层级(A HIERARCHY OF CONTROL LAYERS) 72
模式2 控制模块之间的可见性和通信(VISIBILITY AND COMMUNICATION BETWEEN CONTROL MODULES) 74
模式3 按并发性给对象分类(CATEGORIZE OBJECT FOR CONCURRENCY) 75
模式4 事件触发的动作(ACTIONS TRIGGERED BY EVENT) 77
模式5 服务“等待”(SERVICES"WAITING FOR") 77
模式6 客户端/服务器/服务模型:实现控制模块(THE CLIENT/SERVER/SERVICE MODEL:IMPLEMENTATING MODULES OF CONTROL) 79
模式7 “多类型服务”控制模块的实现(IMPLEMENTATION OF"MULTIPLE KINDS OF SERVICES"CONTROL MODULES 80
模式8 控制模块的接口(THE INTERFACE TO CONTROL MODULES) 81
模式9 原型和现实(PROPERTY AND REALITY) 83
模式10 控制模块分布(DISTRIBUTION OF CONTROL MODULES) 84
和“设计模式编目”比较 87
结论 88
致谢 88
参考文献 88
第7章分 层体系结构的创建模式 91
摘要 91
背景 91
模式 91
阶梯模式 91
桥接模式 94
对称重用模式 95
提升引用以增强可重用性 97
参考文献 97
第8章 半对象+协议模式(HOPP) 98
第9章 主从模式 101
摘要 101
介绍 101
模式 103
理由 103
适用性 103
分类 103
描述 103
动态行为 104
方法 104
实现 105
示例 105
讨论 106
参考文献 107
第3部分 业务对象 110
第10章 信息完整性的CHECKS模式语言 110
整值 110
异常值 111
无意义行为 112
回显 113
可见含义 114
延迟验证 115
快速预测 116
假定发布 116
预测确认 117
诊断式查询 117
第11章 账户号码模式 119
模式 119
参考文献 122
致谢 122
第12章 星型结构:一种查询优化方案模式语言 123
查询优化过的数据库 124
整个业务实体 126
关键业务活动和影响 127
事务处理历史 128
人员、地点和事物 130
时间 132
维上卷 133
第4部分 过程与组织 137
第13章 产生式开发过程模式语言 137
介绍 137
语言内容 138
语言的驱动因素 139
组织内无名的质 140
语言原理 140
备注 141
致谢 141
模式语言 142
模式1:确定组织的规模 142
模式2:自选团队 144
模式3:独奏爱好者 144
模式4:确定进度 145
模式5:形式服从功能 146
模式6:角色的专业知识 146
模式7:逐步深入 147
模式8:见习生 147
模式9:组织服从位置 148
模式10:组织服从市场 149
模式11:开发人员控制过程 149
模式12:老板 150
模式13:体系结构设计师控制产品 151
模式14:反向法则 152
模式15:体系结构设计师也进行实现 152
模式16:检查体系结构 153
模式17:代码所有权 153
模式18:根据测试设计划分应用设计 154
模式19:进行品质保证 155
模式20:客户交往 155
模式21:分组验证 157
模式22:场景定义问题 157
模式23:雇佣分析员 158
模式24:防火墙 159
模式25:看门人 159
模式26:形成循环圈 160
模式27:转移职责 161
模式28:水牛山 161
模式29:内部工作流 163
模式30:每个角色需要3~7个助手 165
模式31:命名的稳定基础 166
模式32:分治 167
模式33:分解各个阶段 167
模式34:轮轴、钢圈和辐条 168
模式35:美学模式 169
模式36:耦合减少延迟 169
模式37:原型 169
模式38:不要打盹 172
模式39:配对开发 172
模式40:中止阻塞 172
模式41:不要打断一个中断 173
模式42:成功补偿 173
参考文献 175
第14章 生命周期以及支持演变和复用的重构模式 178
介绍 178
背景对象演化 180
模式:原型化均衡(First-Pass)设计 180
上下文 180
问题 180
解决方案 181
相关模式 181
模式:扩展初始原型 182
上下文 182
问题 182
解决方案 182
相关模式 183
模式:合并程序以支持演化和重用 183
上下文 183
问题 183
解决方案 184
相关模式 185
模式:从继承层次结构中演化聚合 186
上下文 186
问题 186
解决方案 187
相关模式 188
模式:创建抽象超类 188
上下文 188
问题 188
解决方案 189
相关模式 190
讨论 190
致谢 191
参考文献 191
第15章 RAPPeL:一种用于面向对象开发的“需求分析过程”模式语言 194
摘要 194
RAPPeL的基本原理 194
警告 195
模式语言模式1:构建正确的东西 197
模式5:客户期望的管理与满足 198
模式9:客户和谐 198
模式14:赞助人意图 199
模式17:定义需求 200
模式20:问题域分析 201
模式22:信息需求 202
模式24:域对象的寻找和定义 203
模式25:域对象的分类、关联与分组 204
模式26:域对象的细化 205
模式27:对象老化 206
模式28:对象造型 207
模式30:行为性需求 208
模式32:展望 210
模式34:需求规范 210
模式36:业务规则 213
解决方案 213
约束用例的规则 213
约束对象及其状态的规则 214
模式40:实用外部需求 215
模式50:用户界面需求 215
模式97:原型 216
模式99:需求验证 217
参考文献 218
第16章 毛虫的命运:一种用于分析-设计转换的模式语言 219
摘要 219
介绍 219
CF模式语言 220
模式1:并发执行线程 221
模式2:并发线程同步 221
模式3:协作工作包 222
模式4:工作包内容 223
模式5:工作包状态报告 224
模式6:工作包完工报告 225
模式7:工作包优先级 225
模式8:工作包安全性 226
模式9:程序形态 228
模式10:系统成员的角色 230
模式11:决策制定者的角色 230
模式12:工作人员的角色 231
模式13:接口的角色 231
模式14:信息化角色 232
模式15:小家族系统 233
模式16:通过对话完成的工作 234
模式17:关键区域保护 234
模式18:事件获取 235
模式19:事件路由 236
模式20:人机界面角色是一种特殊的接口角色 237
模式21:数据知其出处 238
CF的使用 238
CF的状态 239
相关事宜 239
参考文献 240
第5部分 设计模式及其编目 244
第17章 一种模式系统 244
摘要 244
介绍 244
一种模式系统 245
如何描述模式 246
模式的分类 247
粒度 247
功能 248
结构化原则 249
模式 250
体系架构级框架 250
设计模式 251
异构的体系架构 253
经验 255
未决事宜 255
相关研究工作 256
结论与展望 257
参考文献 258
第18章 设计模式之间的关系 260
摘要 260
介绍 260
设计模式目录的总结构 261
关系分类 261
需要解决的问题 261
关系类别 263
分类 263
使用分类 265
更改关系和设计模式 265
一个新设计模式:Objectifier 265
其他更改 266
设计模式层 267
层中的组织 267
基本设计模式和技术 267
解决典型软件问题的设计模式 269
针对特定应用域的设计模式 269
其他组织 269
相关著作 270
结论 270
参考文献 271
附录:对象化器模式描述 272
第19章 发现现有应用中的模式 276
介绍 276
模式 277
容器模式 277
高层设计模式 278
低层设计模式 280
小结 281
参考文献 281
附录 281
第20章 实现模式 302
介绍 302
抽象模式和具体模式 302
实现过程中模式被摒弃 303
多簇相互依赖的类 304
模式类 305
常用模式库 307
例证 311
概念问题 312
致谢 313
参考文献 313
附录A:模式作为一个类 313
附录B:类组合的C++实现 314
第6部分 体系结构与通信 321
第21章 流:“拉力驱动(Pull-Driven)”式处理的一种模式 321
模式名称:流 321
参考文献 327
第22章 管道和过滤器体系结构 329
摘要 329
介绍 329
模式 331
结论 336
参考文献 337
附录 337
第23章 基于模式的集成体系结构 340
摘要 340
介绍 340
集成模式的范例 342
结论 346
致谢 347
参考文献 347
相关书目 347
第24章 软件体系结构的模式 349
摘要 349
软件体系结构的设计模式 349
组件包装和交互的模式 352
亚历山大的模式 354
致谢 354
参考文献 355
第7部分 对象用法及对象风格 359
第25章 VisualWorks Smalltalk之ValueModel框架的理解及使用 359
介绍 360
什么是ValueModel 361
使用ValueModel泛化对象的性质 361
使用ValueModel共享值 363
如何使用ValueModel 364
使用onChangeSend:to:登记对值的兴趣 364
使用ValueModel链代替onChangeSend:to: 366
封装value/value:的发送者 368
确保共享同一个值的所有对象使用相同的ValueModel 369
维护一致的ValueModel值类型 370
ValueModel的类型 371
使用ValueHolder存放孤立对象 372
使用AspectAdapter存放对象的性质 372
使用BufferedValueHolder延迟新值的提交 373
使用RangeAdaptor分流数的区间 374
使用IndexedAdaptor存放集合中的某个索引 375
使用SlotAdaptor存放某个实例变量 376
使用PluggableAdaptor存放对象的某个部分 377
使用TypeConverter来回转换值的类型 378
使用ScrollValueHolder存放n维空间中的点 379
使用SelectionInList存放列表及列表选中项 379
参考文献 380
第26章 客户指定的Self 381
摘要 381
意图 381
动机 381
适用性 382
结构 382
动态 384
结果 384
实现 384
示例代码 386
使用 387
相关模式 388
参考文献 388
第27章 通过自封装实现的可复用性 389
简介 389
模式语言 389
结论 397
第8部分 事件和事件处理程序 401
第28章 分离组合和处理的模式 401
上下文 401
人造卫星数据处理 401
实例语法(C++) 404
致谢 406
参考文献 406
第29章 Reactor:并发事件信号分离与事件处理程序派发的对象行为性模式 407
意图 407
动机 407
适用性 410
结构 411
参与方 411
协作 411
结果 412
实现 413
示例代码 415
Client_Acceper类 415
Logging_IO类 417
日志服务器主函数 418
已知的用途 420
各相关模式 420
致谢 420
参考文献 421
第30章 事件模式 422
事件为中心的体系结构 422
事件对象类 423
事件的详细分类 424
面向对象状态机 425
请参阅 425
参考文献 426
附录 Request Screen Modification(请求屏幕修改) 427