注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计其他编程语言/工具程序设计的模式语言(卷1)

程序设计的模式语言(卷1)

程序设计的模式语言(卷1)

定 价:¥49.00

作 者: (美)科普林(Coplien, O.J.), (美)施密特(Schmidt, D.C.)著
出版社: 清华大学出版社
丛编项: 软件模式系列
标 签: 程序设计语言学

ISBN: 9787302127949 出版时间: 2006-05-01 包装: 平装
开本: 16开 页数: 428 字数:  

内容简介

  PLoP(Pattern Languages of Program Design)创立的宗旨是创造新文件。这暗示着PLoP的创始人对现有的文化有些不满,事实的确如此。这些创始人(面向对象编程社区的几位知名人物)已经意识到:他们的才华已受到文件偏见的限制。这种偏见源于科学出版物的传统,一言以蔽之就是喜新厌旧,总是追逐最新最近的发明或发现,而忽视传统的东西,而不论这些所谓的发明或发现是否有用。PLoP的创始人对传统的兴趣也许源自他们对软件重用的研究,或者来自他们的观察:尽管采用了最新的技术,但是由于缺少常用的解决方案,项目最终还是失败了。最重要的是:所有的创始人一致认为他们应该集中精力从事解决方案的推广。PLoP大会就是在这种背景下召开的。本书是“模式形式”系列书籍的第一部,这是我们心目中最佳的解决方案共享方式。我们要求作者提交“模式形式”方面的论文,但不要求实际地阐述形式的含义。Christopher Alexander创造了“模式语言”这一术语并且在他的著作The Timeless Way of Building中很好地阐述了该形式。很多作者对这项工作都很熟悉,而更多的人则是通过OOPSLA研讨会和Internet讨论组了解到它的。即便如此,我们还是感到各位作者希望畅言如何将Alexander的形式应用到计算机编程领域。有一点我们始终坚持:每篇论文描述一个解决方案,可以用来解决一个问题。读者在阅读本书时会发现,各位作者的解决方案所覆盖的问题范围相当广。这也意味着并非每一章都能引起读者同等的兴趣。我们希望随着PLoP社区的发展和成熟,PLoP自身能随着兴趣方向而分化。未来的书籍不会要求它们有如此广泛的读者。在此我们希望读者能够细读每一章,即使您并不打算立即应用所读到的内容,也可以启发表达模式的新灵感,并且的确会提出一个角度来理解开发软件如此困难的原因。虽然涉及的主题丰富多样,PLoP的作者和参与者之间却达成了一些令人惊叹的共识。例如,多数人都已发现:解决方案(模式的本质)可以轻松超越其表达形式的准确特性。模式最终必定停留在人的头脑中,所以各种书写风格(从标准模板的标签化分节到更具风格的运行段落)对模式成功的贡献都不如一些更基本的元素。这些元素包括:设立问题及其上下文,分析施加于解决方案的影响力,以及(最重要的)提供具体的解决方案。包含这些元素的模式都成功了。PLoP'94的核心特色就是作者研讨会,作者听取对他们论文的小组讨论并就其中的亮点和不足展开争论,而不是把论文发给每位听众了事。这就给了作者一个机会,不仅知道如何交流,还能发现他们所研究的技术的其他替代方案。(几十年前在创作性写作社区发源而来的)作者研讨会是新作者学习前辈的经验技巧推敲他们见解的重要论坛。我们很感谢Richard Gabrief在1994年春天把我们领入作者研讨会。就我们所知,这是它第一次被用于技术社区,不过看起来效果甚佳。这就是促生本书的理念和过程。我们对结果很满意,相信各位读者也会。因此我们要全速前进。每周我们都会发现新的证据:我们和我们的作者所促成的焦点转移对我们编写程序的方法具有深远的影响。他们也通过实例昭示了我们对软件工程未来的憧憬。参与本书翻译和审校工作的有:谢文亮、马睿倩、梁金昆、张丽萍、王新彦、刘敏、李娟、刘颖、吴东升、郑刚、李楠、贺倩、李蓉、张颖、刘伟、王彦、王婷、李晓东、吴玲、胡静、张旭、王东、张雄、卢冰、高宏、李晓梅、汪刚、张健、刘洋、苏建忠、王欣轩、于涛、李敏等,在此表示感谢。

作者简介

  JamesO.Coplien是AT&T贝尔实验室软件生产研究部门的成员。他的研究方向主要集中在多范例开发方法和软件开发过程的组织人类学。DouglasC.Schmidt是WashingtonUniversity(位于St.Louis,Missouri)计算机科学系的教员。他的研究方向主要是为高速网络开发面向对象进行通信系统的实践技术。

图书目录

第1部分  框架和组件
第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部分  系统和分布式处理
第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部分  业务对象
第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部分  过程与组织
第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部分  设计模式及其编目
第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部分  体系结构与通信
第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部分  对象用法及对象风格
第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部分  事件和事件处理程序
第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

本目录推荐