当前位置:首页 > 工业技术
程序设计的模式语言·卷2
程序设计的模式语言·卷2

程序设计的模式语言·卷2PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:JOHN M.VLISSIDES JAMES O.COPLIEN NORMAN L.KERTH编;詹文军 周毅等译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302124426
  • 页数:503 页
图书介绍:本书介绍了一些能够解决软件设计和开发中遇到的许多问题的一般性原则。
《程序设计的模式语言·卷2》目录

第1部分 特定语言的模式与惯用法 3

第1章 局部所有权:管理C++中的动态对象 3

1.1 摘要 3

1.2 介绍 3

1.3 术语 4

1.4 综述 5

1.4.1 局部所有权 5

1.4.2 动态对象之外的资源 5

1.5 模式1:创建者是惟一所有者 5

1.6 模式1.1:函数是惟一所有者 6

1.7 模式1.2:对象是惟一所有者 7

1.8 模式1.3:类作为惟一所有者 9

1.9 模式2:所有者序列 10

1.10 模式3:共享所有权 12

1.11 相关主题 14

1.12 致谢 15

1.13 参考文献 15

第2章 延迟优化:高效Smalltalk编程模式 17

2.1 性能评估 19

2.2 延迟优化 20

2.3 性能标准 22

2.4 阈值开关 23

2.5 性能度量 24

2.6 热点 25

2.7 实验 26

2.8 可缓存的表达式 27

2.9 缓存临时变量 29

2.10 缓存参数 30

2.11 缓存状态变量 32

2.12 简化 34

2.13 削减临时对象 35

2.14 对象转换 36

2.15 假设一定大小的(Hpyoth-a-sized)集合 37

2.16 连接流 38

2.17 参考文献 40

第3章 将Smalltalk代码划分成ENVY/Developer组件 41

3.1 综述 41

3.2 模式语言:ENVY划分 42

3.3 分层和分区域架构 43

3.3.1 独立层 45

3.3.2 独立区 46

3.4 应用中的层 48

3.5 子应用中的区域 49

3.6 两个应用 51

3.7 没有子应用 52

3.8 致谢 53

3.9 参考文献 53

第2部分 通用模式 57

第4章 命令处理器 57

参考文献 65

第5章 观察者模式的实现模式 67

5.1 介绍 67

5.2 模式:目标变化的传递 67

5.3 模式:每个变化请求一条消息 70

5.4 模式:每个受影响对象一条消息 71

5.5 反面模式:每个变化请求优化消息 72

5.6 模式:消息包 73

5.7 模式:观察者更新消息 74

5.8 模式:更新观察者 75

5.9 参考文献 75

第6章 封装类树模式 77

6.1 介绍 77

6.2 模式背景 77

6.3 框架示例 79

6.4 类树封装 80

6.4.1 类获取 81

6.4.2 后创建 82

6.5 规范支持 84

6.5.1 类子句 84

6.5.2 类规范 86

6.5.3 类语义 87

6.6 与其他模式的关系 89

6.7 模式格式 90

6.8 小结与结论 90

6.9 致谢 91

6.10 参考文献 91

第7章 代理设计模式回顾 93

7.1 摘要 93

7.2 例子 93

7.3 一般模式 94

7.4 上下文 94

7.5 问题 94

7.6 解决方案 94

7.7 结构 95

7.8 动态 95

7.9 实现 96

7.10 第二层模式 97

7.10.1 远程代理 97

7.10.2 保护代理 97

7.10.3 缓存代理 97

7.10.4 同步代理 98

7.10.5 计数代理 98

7.10.6 虚拟代理 98

7.10.7 防火墙代理 99

7.11 组合代理变形 99

7.12 示例的解决方案 99

7.13 相关工作 100

7.14 精选的已知应用 100

7.15 结论 101

7.16 同时参阅 101

7.17 开放问题 102

7.18 致谢 102

7.19 参考文献 103

第8章 MOODS:状态面向对象设计的模块 104

8.1 设计决策树 104

8.2 设计决策1:要简化复杂行为,使用分解 106

8.3 设计决策2:对于有情绪的对象,使用状态类 107

8.3.1 如何跟踪对象变化的情绪 109

8.3.2 如何支持情绪敏感(Mood-Sensitive)的方法选择 109

8.4 设计决策3:当事件产生情绪时,使用状态机 110

8.5 设计决策4:对于状态机,使用转移方法 110

8.6 设计决策5:当状态是条件时,使用判断状态类 111

8.7 设计决策6:当状态是关联时,使用状态对象 112

8.8 设计决策7:对于复杂情绪,使用情绪转换器 113

8.9 设计决策8:当有很多情绪时,使用情绪分类器 115

8.10 例子中用到的C++源代码 117

8.10.1 使用状态对象的分配器 117

8.10.2 分配器作为带有判断状态类的转换器 120

8.10.3 分配器作为情绪分类器 122

8.11 参考文献 124

第9章 购物者 125

9.1 介绍 125

9.2 动机 125

9.3 结构 126

9.4 适用性 127

9.5 参与者 127

9.6 协作 128

9.7 结论 128

9.8 实现 129

9.8.1 遍历提供者组 129

9.8.2 获取和选择提供者中的被请求项目 130

9.9 示例代码 130

9.10 相关模式 133

9.11 致谢 134

9.12 参考文献 134

第3部分 专用模式 138

第10章 可分离检查器/可删除cout:用于设计透明分层服务的一种结构模式 138

10.1 摘要 138

10.2 动机 138

10.3 解决方案 140

10.4 适用性 141

10.5 静态和动态结构 141

10.5.1 类、责任和协作者 142

10.5.2 动态协作者 143

10.6 结论 143

10.7 实现 145

10.8 示例代码与使用 146

10.9 已知应用 148

10.10 相关模式 149

10.10.1 装饰者 149

10.10.2 访问者 149

10.10.3 独身者 149

10.11 注释 149

10.12 变形 150

10.13 致谢 150

10.14 参考文献 151

第11章 面向对象超媒体应用的设计模式 152

11.1 摘要 152

11.2 介绍 152

11.3 一种面向对象的超媒体框架 153

11.4 NavigationStrategy 154

11.5 NavigationObserver 158

11.6 结束语 162

11.7 致谢 162

11.8 参考文献 162

第12章 组织复用:用于与分布式团队处理卫星遥测的模式 165

12.1 摘要 165

12.2 介绍 165

12.3 项目组织 166

12.4 模式 167

12.4.1 模式1:松散接口 167

12.4.2 模式2:解释器/构造器 168

12.4.3 模式3:工厂等级 170

12.4.4 模式4:处理器 172

12.5 结论 173

12.6 文中引用的模式 174

12.6.1 来自“生成开发过程模式语言”[Coplien95]的模式 174

12.6.2 来自“设计模式”[Gamma+95]的模式 174

12.6.3 来自“早期开发模式”[Beck94]的模式 175

12.7 致谢 175

12.8 参考文献 175

第13章 备份模式:在面向对象的软件中设计冗余 176

13.1 摘要 176

13.2 目的 176

13.3 别名 176

13.4 问题与上下文 176

13.5 难点 177

13.6 难点解决方案 177

13.7 动机 178

13.8 适用性 179

13.9 结构 179

13.10 参与者 180

13.11 协作 181

13.12 结论 182

13.13 实现 183

13.13.1 创建候选 183

13.13.2 候选的独立性 184

13.13.3 保持当前候选的状态 185

13.13.4 确定正确的功能 185

13.13.5 撤销主模块执行产生的影响 185

13.13.6 验收测试 185

13.14 示例代码与应用 187

13.15 已知应用 190

13.16 相关模式 190

13.17 小结 191

13.18 致谢 191

13.19 参考文献 191

第14章 交叉中断:对象-RDBMS集成的模式语言(静态模式) 193

14.1 摘要 193

14.2 介绍 193

14.3 静态模式(关系方面) 194

14.3.1 表的设计时间 194

14.3.2 将对象描述成表 195

14.3.3 将对象关系描述成表 196

14.3.4 在关系数据库中描述继承关系 197

14.3.5 在关系数据库中描述集合 199

14.3.6 对象标识符(OID) 200

14.3.7 外键引用 201

14.4 静态模式(对象方面) 202

外键与直接引用 202

14.5 参考文献 203

第15章 事务和账户 204

15.1 摘要 204

15.2 介绍 204

15.3 商业事务 206

15.4 将事务处理与存档分开 206

15.5 商业账户 207

15.6 组合事务 208

15.7 调整事务 208

15.8 月底结算 209

15.9 显式业务规则 210

15.10 持续处理 211

15.11 致谢 212

15.12 参考文献 212

第4部分 架构模式 216

第16章 软件架构的一些模式 216

16.1 摘要 216

16.2 软件架构的设计模式 216

16.3 架构模式 217

16.3.1 流水线 218

16.3.2 数据抽象 219

16.3.3 通信进程 220

16.3.4 隐式调用 221

16.3.5 仓库(Repository) 222

16.3.6 解释器 223

16.3.7 主程序和子例程 224

16.3.8 分层架构 225

16.4 致谢 226

16.5 参考文献 227

第17章 反射 229

17.1 介绍 229

17.2 例子 229

17.3 结构 232

17.4 动态 234

17.5 实现 236

17.6 示例解析 242

17.7 变形 242

17.8 已知应用 242

17.9 结论 244

17.10 同时参阅 246

17.11 参考文献 246

第18章 进化、架构和变形 248

18.1 摘要 248

18.2 介绍 248

18.3 软件构造 250

18.4 灵活基础 253

18.5 变形 257

18.6 小结 262

18.7 致谢 262

18.8 参考文献 263

第5部分 过程和组织 268

第19章 软件设计中的优先级问题 268

19.1 介绍 268

19.2 模式1:保护变量 270

模式1.1:持久存取器 271

19.3 模式2:技能混合 272

19.3.1 模式2.1:三个子系统 273

19.3.2 模式2.2:通用UI,专用UI 274

19.3.3 模式2.3:通用和专用 275

19.4 模式3:应用边界 275

19.4.1 模式3.1:分解确认 276

19.4.2 模式3.2:内部编辑 277

19.5 模式4:每团队的子类 278

模式4.1:模型层次 279

19.6 模式5:正面 280

模式5.1:域截取 281

19.7 对这种格式的评价 281

19.8 参考文献 282

第20章 决策延迟和捕捉模式语言 283

20.1 介绍 283

20.2 综述 283

20.3 模式1:基于决策的模型 284

20.4 模式2:适当的现存模型 285

20.5 模式3:可执行模型 286

20.6 模式4:向上的可溯性 287

20.7 模式5:向下的变化 288

20.8 致谢 289

20.9 参考文献 289

第21章 团队的组织模式 290

21.1 模式语言:团队设计 290

21.2 模式1:目标一致 291

21.3 模式2:成员关系的多样性 292

21.4 模式3:团结起来 293

21.5 模式4:团队确认 295

21.6 参考文献 296

第22章 责任和组织结构 297

22.1 介绍 297

22.2 组织结构的问题 297

22.3 模式综述 298

22.4 模型符号 299

22.5 模式1:团体 301

22.6 模式2:组织的递归结构 302

22.7 模式3:子类型中带有约束的抽象模型 303

22.8 模式4:多层关联 304

22.9 模式5:组织结构类型的关系 305

22.10 模式6:关联具体化 306

22.11 模式7:类型关系 307

22.12 模式8:责任抽象 308

22.13 模式9:责任知识等级 309

22.14 模式10:将经常变化的结构放到实例中 310

22.15 模式11:知识等级 311

22.16 致谢 312

22.17 参考文献 313

第23章 插曲:一种竞争开发模式语言 314

23.1 产品 316

23.1.1 产品的最初状态 316

23.1.2 市场调查 317

23.1.3 隐含需求 317

23.2 开发 318

23.2.1 工作序列 318

23.2.2 工作组 319

23.2.3 工作序列报表 320

23.2.4 比较工作 320

23.2.5 完成天数 321

23.2.6 开发插曲 322

23.2.7 不正规的劳动计划 323

23.2.8 工作划分 323

23.2.9 再提交会议 324

23.3 编程 324

23.3.1 需求调查 325

23.3.2 技术备忘录 325

23.3.3 参考数据 325

23.3.4 编程插曲 326

23.4 补充模式 327

23.5 参考文献 328

第6部分 展示 330

第24章 课堂教学模式 330

24.1 摘要 330

24.2 介绍 330

24.3 本章要讨论的模式 330

24.4 模式1:重复课程开发 331

24.5 模式2:鸡和蛋 332

24.6 模式3:新旧混合 332

24.7 模式4:陷阱诊断和预防 333

24.8 模式5:模块的故事 334

24.9 模式6:七个部分 335

24.10 模式7:显而易见的清单 335

24.11 模式8:熟悉的例子 336

24.12 模式9:使用一周的例子 337

24.13 模式10:参考例子 338

24.14 模式11:生动的类比 339

24.15 模式12:仿真游戏 339

24.16 模式13:测试游戏 340

24.17 模式14:活动后听取汇报 341

24.18 模式语言 342

24.19 参考文献 344

第25章 演示准备:用于准备软件演示的一种模式语言 345

25.1 介绍 345

25.2 模式1:元素识别 346

25.3 模式2:催化场景 347

25.4 模式3:易变的代码 348

25.5 模式4:原型语言 349

25.6 模式5:轻量级用户界面 350

25.7 模式6:明智的争论 351

25.8 模式7:存档场景 352

25.9 结论 353

25.10 参考文献 353

第26章 基于文章的网站使用的一种模式语言 354

26.1 A:文本格式模式 355

A.1:自然文本流 355

A.2:自然文本超链接 356

A.3:自然文本目录 356

26.2 B:文章格式模式 357

B.1:(生动的文章) 358

B.2:(低深度文档树) 358

B.3:(文档格式一致性) 358

B.4:(基于小节的文章) 358

B.5:(短小的、单页文章) 358

B.6:(一致的页眉和页脚) 359

B.7:(介绍性小节) 359

B.8:(介绍性图片) 359

B.9:(朝向顶部的活动) 359

B.10:(文档内容列表) 359

B.11:引用项 360

B.12:(后一个和前一个引用链接) 360

26.3 C:元信息(Meta-Informational)模式 360

C.1:揭露内幕 361

C.2:(作者小传) 361

C.3:(对应日期) 361

C.4:(工作表文档) 362

C.5:(可下载CGI) 362

C.6:(联系作者) 362

C.7:(直接文档讨论) 362

C.8:新文档通知 363

C.9:(变化的文档通知) 363

C.10:(临时保留文档版本) 363

26.4 D:调制解调器速度慢的模式 364

D.1:14.4Kbps测试 364

D.2:(少量图片) 364

D.3:(隔行扫描的图片) 365

D.4:(低位深度图片) 365

26.5 E:其他模式 365

E.1:(链接类型差别) 365

E.2:(主页版本) 365

26.6 致谢 366

26.7 参考Web站点 366

第7部分 并行编程/分布式系统 369

第27章 半同步/半异步:高效的、结构完善的并行I/O使用的一种架构模式 369

27.1 致谢 386

27.2 参考文献 386

第28章 资源交换器:低开销并行资源管理的一种行为模式 388

28.1 摘要 388

28.2 解决方案 389

28.3 应用 391

28.4 结构 391

28.4.1 类、责任和协作者 392

28.4.2 动态协作 393

28.5 结论 393

28.6 实现 394

28.7 示例代码和使用 395

28.8 已知应用 397

28.9 相关模式 397

28.10 变形 397

28.11 致谢 398

28.12 参考文献 398

第29章 客户—分配器—服务器设计模式 400

参考文献 405

第30章 主动对象:并行编程使用的一种对象行为模式 406

30.1 摘要 406

30.1.1 目的 406

30.1.2 别名 406

30.1.3 动机 406

30.1.4 适用性 409

30.1.5 结构及参与者 409

30.1.6 协作者 410

30.1.7 结论 411

30.1.8 实现 411

30.1.9 示例代码 413

30.1.10 已知应用 419

30.1.11 相关模式 419

30.2 参考文献 420

第31章 为并行程序选择锁定设计 422

31.1 摘要 422

31.2 例子算法 422

31.3 上下文概述 423

31.4 难点 424

31.5 锁定设计模式索引 425

31.5.1 模式关系 426

31.5.2 解决难点 427

31.5.3 缺陷表 428

31.6 锁定设计模式 429

31.6.1 串行程序 429

31.6.2 代码锁定 430

31.6.3 数据锁定 432

31.6.4 数据所有权 435

31.6.5 并行快捷路径 438

31.6.6 读者/写者锁定 439

31.6.7 分层锁定 441

31.6.8 分配器缓存 444

31.6.9 临界区熔合 445

31.6.10 临界区划分 447

31.7 致谢 448

31.8 参考文献 449

第8部分 反应性系统 453

第32章 反应性系统中面向对象的设计模式 453

32.1 介绍 453

32.1.1 仿真的重要性 453

32.1.2 BASEstar Open 454

32.2 模式1:面向对象的仿真,事件驱动的现实 455

32.3 模式2:具体化事件 457

32.4 模式3:具体化系统状态 458

32.5 模式4:远程控制对象 460

32.6 模式5:事件驱动 461

32.7 总结 462

32.8 致谢 463

32.9 参考文献 463

第33章 容错电信系统模式 464

33.1 介绍 464

33.2 术语 465

33.3 模式:人工干预最小化 465

33.4 模式:人最了解 467

33.5 模式:无升级消息的5分钟 468

33.6 模式:瞬时抑制 469

33.7 模式:漏桶计数器 470

33.8 模式:SICO首要并总是 472

33.9 模式:尝试所有的硬件联合体 473

33.10 模式:欺骗一次 475

33.11 致谢 477

33.12 参考文献 477

第34章 利用队列改善交互应用的响应性 478

34.1 摘要 478

34.2 介绍 478

34.3 模式1:事件队列 479

34.4 模式2:组合兼容事件 480

34.5 模式3:处理人为事件 483

34.6 模式4:将执行和输出分离 485

34.7 结论 486

34.8 致谢 486

34.9 参考文献 486

第35章 用于改善反应性系统功能的模式语言 488

35.1 摘要 488

35.2 介绍 488

35.3 问题域历史 488

35.4 模式语言 489

35.5 容量模式 490

35.5.1 模式1:容量瓶颈 490

35.5.2 模式2:处理容量 491

35.5.3 模式3:优化高运行状况 493

35.5.4 模式4:分散负载 495

35.5.5 模式5:完成处理过程中的工作负载 496

35.5.6 模式6:在失效前更新工作负载 497

35.5.7 模式7:匹配正在处理的工作负载与新工作负载 499

35.5.8 模式8:分担负载 500

35.5.9 模式9:在外设分散工作负载 501

35.5.10 模式10:信用漏桶 501

35.6 致谢 503

35.7 参考文献 503

相关图书
作者其它书籍
返回顶部