第一部分 概念 2
第1章 模式与模式语言 2
1.1 模式 2
1.2 模式内幕 3
1.2.1 问题的环境 3
1.2.2 驱动因素:所有模式的核心 4
1.2.3 解决方案与结果 4
1.2.4 模式命名 4
1.2.5 模式表现形式概述 5
1.3 模式的关系 5
1.3.1 模式的互补 5
1.3.2 模式的组合 6
1.3.3 模式故事 6
1.3.4 模式序列 7
1.4 模式语言 7
1.4.1 从模式序列到模式语言 7
1.4.2 展现和使用模式语言 7
1.5 模式的连接 8
第2章 分布式系统 9
2.1 分布式的优点 9
2.2 分布式的挑战 11
2.3 用以支持分布式的技术 12
2.3.1 分布式对象计算中间件 13
2.3.2 组件中间件 14
2.3.3 发布/订阅中间件和面向消息的中间件 15
2.3.4 面向服务架构和Web服务 16
2.4 中间件技术的局限性 17
第3章 模式语言 18
3.1 意图、范畴和对象 18
3.2 起源 18
3.3 结构和内容 19
3.4 模式的表现 24
3.5 实际应用 26
第二部分 模式故事 33
第4章 仓库管理流程控制 33
4.1 系统范畴 33
4.2 仓库管理流程控制 34
第5章 基线架构 37
5.1 架构环境 37
5.2 划分大泥球 38
5.3 层次分解 38
5.4 访问领域对象功能 40
5.5 网络桥接 41
5.6 分离用户界面 43
5.7 功能分布 45
5.8 支持并发的领域对象访问 47
5.9 获得可扩展的并发性 48
5.10 将面向对象与关系型数据库连接起来 49
5.11 领域对象的运行时配置 50
5.12 基线架构总结 51
第6章 通信中间件 54
6.1 分布式系统的中间件架构 54
6.2 对中间件的内部设计进行结构化 57
6.3 封装底层系统机制 58
6.4 分离ORB核心事件 59
6.5 ORB连接管理 61
6.6 提高ORB的可伸缩性 63
6.7 实现同步请求队列 65
6.8 可互换的内部ORB机制 66
6.9 管理ORB策略 68
6.10 ORB动态配置 69
6.11 通信中间件总结 71
第7章 仓库拓扑 74
7.1 仓库拓扑基线 74
7.2 表现层次化的存储结构 74
7.3 存储结构导航 77
7.4 存储属性建模 78
7.5 不同的存储单元行为 79
7.6 实现全局功能 81
7.7 遍历仓库拓扑 81
7.8 支持控制流扩展 83
7.9 连接数据库 84
7.10 维护内存中的存储单元数据 85
7.11 配置仓库拓扑 86
7.12 细述显式接口 88
7.13 仓库拓扑总结 89
第8章 模式故事背后的故事 91
第三部分 模式语言 97
第9章 从混沌到结构 97
9.1 Domain Model 106
9.2 Layers 108
9.3 Model-View-Controller 109
9.4 Presentation-Abstraction-Control 111
9.5 Microkernel 113
9.6 Reflection 114
9.7 Pipes and Filters 116
9.8 Shared Repository 117
9.9 Blackboard 119
9.10 Domain Object 121
第10章 分布式基础设施 123
10.1 Messaging 129
10.2 Message Channel 130
10.3 Message Endpoint 132
10.4 Message Translator 133
10.5 Message Router 134
10.6 Publisher-Subscriber 135
10.7 Broker 137
10.8 Client Proxy 139
10.9 Requestor 140
10.10 Invoker 142
10.11 Client Request Handler 143
10.12 Server Request Handler 144
第11章 事件分离和分发 147
11.1 Reactor 150
11.2 Proactor 152
11.3 Acceptor-Connector 154
11.4 Asynchronous Completion Token 155
第12章 接口划分 157
12.1 Explicit Interface 163
12.2 Extension Interface 165
12.3 Introspective Interface 166
12.4 Dynamic Invocation Interface 167
12.5 Proxy 169
12.6 Business Delegate 170
12.7 Facade 171
12.8 Combined Method 172
12.9 Iterator 173
12.10 Enumeration Methond 174
12.11 Batch Method 175
第13章 组件划分 177
13.1 Encapsulated Implementation 181
13.2 Whole-Part 183
13.3 Composite 185
13.4 Master-Slave 186
13.5 Half-Object plus Protocol 188
13.6 Replicated Component Group 189
第14章 应用控制 191
14.1 Page Controller 196
14.2 Front Controller 197
14.3 Application Controller 198
14.4 Command Processor 199
14.5 Template View 200
14.6 Transform View 201
14.7 Firewall Proxy 202
14.8 Authorization 204
第15章 并发 206
15.1 Half-Sync/Half-Async 209
15.2 Leader/Followers 211
15.3 Active Object 212
15.4 Monitor Object 214
第16章 同步 216
16.1 Guarded Suspension 221
16.2 Future 223
16.3 Thread-Safe Interface 224
16.4 Double-Checked Locking 225
16.5 Strategized Locking 226
16.6 Scoped Locking 227
16.7 Thread-Specifc Storage 228
16.8 Copied Value 230
16.9 Immutable Value 231
第17章 对象间的交互 233
17.1 Observer 237
17.2 Double Dispatch 238
17.3 Mediator 239
17.4 Command 240
17.5 Memento 242
17.6 Context Object 243
17.7 Data Transfer Object 244
17.8 Message 245
第18章 适配与扩展 247
18.1 Bridge 255
18.2 Object Adapter 256
18.3 Chain of Responsibility 257
18.4 Interpreter 258
18.5 Interceptor 260
18.6 Visitor 261
18.7 Decorator 262
18.8 Execute-Around Object 264
18.9 Template Method 265
18.10 Strategy 266
18.11 Null Object 267
18.12 Wrapper Facade 269
18.13 Declarative Component Configuration 270
第19章 模态行为 272
19.1 Objects for States 274
19.2 Methods for States 275
19.3 Collections for States 276
第20章 资源管理 278
20.1 Container 288
20 2 Component Configurator 289
20.3 Object Manager 291
20.4 Lookup 292
20.5 Virtual Proxy 294
20.6 Lifecycle Callback 295
20.7 Task Coordinator 296
20.8 Resource Pool 298
20.9 Resource Cache 299
20.10 Lazy Acquisition 300
20.11 Eager Acquisition 301
20.12 Partial Acquisition 303
20.13 Activator 304
20.14 Evictor 305
20.15 Leasing 306
20.16 Automated Garbage Collection 307
20.17 Counting Handles 309
20.18 Abstract Factory 311
20.19 Builder 312
20.20 Factory Method 313
20.21 Disposal Method 314
第21章 数据库访问 316
21.1 Database Access Layer 318
21.2 Data Mapper 320
21.3 Row Data Gateway 321
21.4 Table Data Gateway 323
21.5 Active Record 324
第22章 最后的思考 326
术语表 327
参考书目 340