《程序设计的模式语言 第1卷》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)科普林(Coplien,J.O.),(美)施密特(Schmidt,D.C.)编;谢文亮,梁金昆译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2006
  • ISBN:7302127948
  • 页数:428 页
图书介绍:本书汇集了许多专家的宝贵经验。

第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