题名:程序设计模式语言 . 卷5
作者:Dragos Manolescu, Markus Voelter, James Noble著
出版年:2009
ISBN: 978-7-302-20017-8
分类号: TP312
中图分类: 程序语言、算法语言
译者: 陈宗斌
定价: 59.00元
页数: 424 页 页
出版社: 清华大学出版社
装订: 平装

《程序设计模式语言·卷5》共分6部分19章。作为提高软件工程、系统设计与开发效率和质量的一种极其有效的方法,模式语言受到越来越多程序设计人员和相关行业的重视。模式收集提炼了许多优秀软件的设计经验,提供给所有软件工程师。本系列丛书(《面向对象软件开发》)已经出版了4卷,《程序设计模式语言· 卷5》是该丛书的第5卷,集合了来自程序模式语言会议的一流模式。《程序设计模式语言·卷5》的全部内容都来自各届PLoP,很多人为此作出了卓越的贡献。<br />第I部分 设计模式<br />第1章 动态对象模型3<br />1.1 目的3<br />1.2 别名3<br />1.3 动机3<br />1.4 问题6<br />1.5 解决方案结构6<br />1.6 优缺点8<br />1.6.1 简明性8<br />1.6.2 灵活性8<br />1.6.3 最终用户配置9<br />1.6.4 编程环境9<br />1.6.5 动态行为10<br />1.6.6 运行时输入10<br />1.6.7 可移植性10<br />1.7 扩展10<br />1.8 实现11<br />1.9 示例代码12<br />1.10 已知应用17<br />1.11 相关模式18<br />1.12 致谢19<br />1.13 参考文献19<br />第2章 域对象管理器21<br />2.1 目的21<br />2.2 别名21<br />2.3 动机21<br />2.4 可应用性24<br />2.5 结构24<br />2.6 组成25<br />2.7 协作25<br />2.8 结果26<br />2.9 实现27<br />2.10 示例代码29<br />2.11 已知应用33<br />2.12 相关模式33<br />2.13 致谢35<br />2.14 参考文献35<br />第3章 封装上下文37<br />3.1 受众37<br />3.2 示例37<br />3.3 问题40<br />3.4 限制条件40<br />3.4.1 可替换性41<br />3.4.2 封装41<br />3.4.3 耦合到环境41<br />3.4.4 避免数据复制42<br />3.5 解决方案42<br />3.6 实现43<br />3.7 最终解决方案44<br />3.8 变体46<br />3.9 结果47<br />3.9.1 可替换性47<br />3.9.2 封装47<br />3.9.3 耦合到环境47<br />3.9.4 避免数据复制47<br />3.9.5 推理47<br />3.9.6 实例化48<br />3.9.7 整洁的代码48<br />3.9.8 同步点48<br />3.9.9 测试48<br />3.9.10 Blob趋势48<br />3.9.11 隐藏的全局变量49<br />3.9.12 主要成员49<br />3.10 已知应用49<br />3.10.1 Chutney Technologies Apptimizer (C++)49<br />3.10.2 Reuters Liffe Connect Data Router (C++)49<br />3.10.3 Jiffy (Parthenon计算) XML数据库服务器(C++)50<br />3.10.4 Enterprise Java Beans50<br />3.10.5 Interpreter模式示例50<br />3.11 相关模式50<br />3.12 更多示例52<br />3.13 小结52<br />3.14 致谢52<br />3.15 参考文献52<br />第II部分 并发、网络与实时模式<br />第4章 用于高效、可预测及可伸缩的调度<br />组件的模式语言57<br />4.1 介绍57<br />4.2 调度组件与模式语言的概述58<br />4.3 用于调度组件的模式语言61<br />4.3.1 对单一对象的调度61<br />4.3.2 对多对象的调度66<br />4.4 结束语69<br />4.5 参考文献70<br />第5章 3T——硬实时系统中用于可靠通信的模式系统73<br />5.1 简介73<br />5.1.1 运行示例: 线控制动74<br />5.1.2 模式概述74<br />5.2 提前计划的周期性传输76<br />5.2.1 上下文76<br />5.2.2 示例76<br />5.2.3 问题77<br />5.2.4 解决方案78<br />5.2.5 实现79<br />5.2.6 运行时示例分解80<br />5.2.7 结果81<br />5.2.8 已知应用82<br />5.2.9 相关模式83<br />5.3 时间触发时钟同步83<br />5.3.1 上下文83<br />5.3.2 问题 83<br />5.3.3 示例83<br />5.3.4 解决方案84<br />5.3.5 实现84<br />5.3.6 结果85<br />5.3.7 已知应用85<br />5.3.8 相关模式85<br />5.4 同步帧85<br />5.4.1 上下文85<br />5.4.2 问题86<br />5.4.3 示例86<br />5.4.4 解决方案86<br />5.4.5 实现87<br />5.4.6 分解的运行示例88<br />5.4.7 结果 88<br />5.4.8 已知应用89<br />5.4.9 相关模式89<br />5.5 总线守护89<br />5.5.1 上下文89<br />5.5.2 问题90<br />5.5.3 示例90<br />5.5.4 解决方案90<br />5.5.5 实现91<br />5.5.6 分解的运行示例92<br />5.5.7 结果92<br />5.5.8 已知应用92<br />5.5.9 相关模式92<br />5.6 临时应用程序解耦92<br />5.6.1 上下文92<br />5.6.2 问题93<br />5.6.3 示例93<br />5.6.4 解决方案93<br />5.6.5 实现94<br />5.6.6 结果 95<br />5.6.7 已知应用95<br />5.6.8 相关模式96<br />5.7 致谢96<br />5.8 附录96<br />5.8.1 术语96<br />5.8.2 已知应用97<br />5.9 参考文献99<br />第6章 实时和资源超载语言101<br />6.1 介绍101<br />6.2 语言图103<br />6.3 语言上下文104<br />模式1 超载帝国105<br />模式2 灾难性通知106<br />模式3 重新评估过载决定108<br />模式4 如果工作很好,不要修改110<br />模式5 屏蔽分流工作优先权111<br />模式6 资源排队113<br />模式7 过载弹性114<br />模式8 合理的资源分配115<br />6.4 以前发布的模式116<br />6.5 致谢117<br />6.6 图像来源118<br />6.6.1 引入模式的图像118<br />6.6.2 其他图像118<br />6.7 参考文献118<br />第III部分 分布式系统<br />第7章 分散锁定123<br />7.1 介绍123<br />7.2 别名123<br />7.3 示例123<br />7.4 上下文124<br />7.5 问题124<br />7.6 解决方案124<br />7.7 结构125<br />7.8 动态125<br />7.9 实现128<br />步骤1128<br />步骤2128<br />步骤3129<br />步骤4129<br />步骤5130<br />7.10 示例分解130<br />7.11 变体131<br />7.12 已知应用131<br />7.13 结果132<br />7.14 相关模式132<br />7.15 致谢133<br />7.16 参考文献133<br />第8章 比较模式: 使用专门值简化身份测试135<br />8.1 简介135<br />8.2 示例135<br />8.3 上下文136<br />8.4 问题136<br />8.5 解决方案138<br />8.6 实现139<br />8.6.1 “正确的”比较语义139<br />8.6.2 对克隆的比较139<br />8.6.3 哪些类可相互比较140<br />8.6.4 给定系统的限制条件141<br />8.6.5 重用已有的属性141<br />8.6.6 执行比较操作142<br />8.6.7 分布式环境中的比较字符142<br />8.6.8 模糊比较字符143<br />8.6.9 复合比较字符143<br />8.6.10 计算比较字符145<br />8.6.11 协同比较字符145<br />8.7 结果145<br />8.8 已知应用146<br />8.8.1 JPDA146<br />8.8.2 远程方法请求146<br />8.8.3 CORBA关系服务147<br />8.8.4 Enterprise Java Beans147<br />8.8.5 Ginko147<br />8.9 相关模式148<br />8.10 结论148<br />8.11 致谢148<br />8.12 参考文献149<br />第9章 服务发现的模式语言151<br />9.1 模式152<br />模式1 询问本地网络152<br />模式2 覆盖网络153<br />模式3 侦听广告154<br />模式4 使用广告主155<br />模式5 查阅目录156<br />模式6 目录中的服务注册157<br />模式7 目录发现服务158<br />模式8 结合目录与组织159<br />模式9 动态放置目录160<br />模式10 从位置中分离标识 160<br />模式11 客户知道最好的162<br />模式12 服务完成繁重工作163<br />9.2 结合模式: 以SLP为例163<br />9.3 致谢165<br />9.4 参考文献165<br />第IV部分 特定于域的模式<br />第10章 MoRaR: 移动与无线资源管理的模式语言169<br />10.1 介绍169<br />10.2 移动无线系统: 体系结构概念170<br />10.3 MoRaR 模式语言172<br />10.4 移动管理功能的相关模式175<br />10.4.1 临时标识175<br />10.4.2 安全数据库 177<br />10.4.3 加密178<br />10.4.4 认证180<br />10.4.5 分页 182<br />10.4.6 主数据库与访问数据库183<br />10.4.7 位置注册 185<br />10.5 无线资源管理模式186<br />10.5.1 切换决定187<br />10.5.2 锚实体188<br />10.5.3 系统间切换执行190<br />10.5.4 切换失败措施191<br />10.5.5 释放资源192<br />10.6 结论192<br />10.7 致谢193<br />10.8 参考文献194<br />10.9 附录196<br />第11章 Web上的内容转换与生成: 模式语言199<br />11.1 介绍199<br />11.1.1 目标受众200<br />11.1.2 表单上的注释200<br />11.2 模式语言回顾201<br />11.3 Web上转换和生成内容的模式203<br />11.3.1 通用内容格式203<br />11.3.2 发布者与收集者206<br />11.3.3 内容转换器209<br />11.3.4 内容创建器212<br />11.3.5 内容格式模板214<br />11.3.6 片段216<br />11.3.7 内容缓存220<br />11.4 Java中的实现示例222<br />11.5 已知应用与相关工作225<br />11.6 结论227<br />11.7 致谢228<br />11.8 参考文献229<br />第V部分 体系结构模式<br />第12章 插件模式233<br />12.1 组件的插件特色234<br />12.2 示例234<br />12.3 已知应用235<br />12.4 路线图235<br />12.5 插件236<br />12.5.1 上下文236<br />12.5.2 问题236<br />12.5.3 限制条件237<br />12.5.4 解决方案237<br />12.5.5 术语237<br />12.5.6 结果237<br />12.5.7 实现238<br />12.5.8 组织问题238<br />12.5.9 已知应用238<br />12.5.10 示例239<br />12.5.11 相关模式239<br />12.6 插件协议240<br />12.6.1 上下文240<br />12.6.2 问题240<br />12.6.3 限制条件240<br />12.6.4 解决方案240<br />12.6.5 结果241<br />12.6.6 实现242<br />12.6.7 变量242<br />12.6.8 示例242<br />12.6.9 已知应用243<br />12.6.10 相关模式243<br />12.7 提供框架的应用程序244<br />12.7.1 别名244<br />12.7.2 上下文244<br />12.7.3 问题244<br />12.7.4 限制条件244<br />12.7.5 解决方案244<br />12.7.6 结果244<br />12.7.7 实现245<br />12.7.8 变量245<br />12.7.9 示例245<br />12.7.10 已知应用245<br />12.7.11 相关模式246<br />12.8 插件注册246<br />12.8.1 上下文246<br />12.8.2 问题246<br />12.8.3 限制条件246<br />12.8.4 解决方案247<br />12.8.5 结果247<br />12.8.6 实现247<br />12.8.7 变量247<br />12.8.8 示例248<br />12.8.9 已知应用248<br />12.8.10 相关模式248<br />12.9 插件生命周期248<br />12.9.1 上下文248<br />12.9.2 问题248<br />12.9.3 限制条件248<br />12.9.4 解决方案249<br />12.9.5 结果249<br />12.9.6 实现249<br />12.9.7 变量249<br />12.9.8 示例250<br />12.9.9 已知应用250<br />12.9.10 相关模式250<br />12.10 插件包251<br />12.10.1 上下文251<br />12.10.2 问题251<br />12.10.3 限制条件251<br />12.10.4 解决方案251<br />12.10.5 结果252<br />12.10.6 实现252<br />12.10.7 示例252<br />12.10.8 已知应用252<br />12.10.9 相关模式253<br />12.11 协作插件253<br />12.11.1 别名253<br />12.11.2 上下文253<br />12.11.3 问题253<br />12.11.4 限制条件253<br />12.11.5 解决方案253<br />12.11.6 结果254<br />12.11.7 实现254<br />12.11.8 示例254<br />12.11.9 已知应用254<br />12.11.10 相关模式254<br />12.12 基于插件的产品255<br />12.12.1 上下文255<br />12.12.2 问题255<br />12.12.3 限制条件255<br />12.12.4 解决方案255<br />12.12.5 结果255<br />12.12.6 实现256<br />12.12.7 组织问题256<br />12.12.8 示例257<br />12.12.9 已知应用257<br />12.12.10 相关模式257<br />12.13 致谢257<br />12.14 参考文献257<br />第13章 网格体系结构模式: 影响分布式处理能力259<br />13.1 目的259<br />13.2 示例259<br />13.3 上下文260<br />13.4 问题260<br />13.5 解决方案261<br />13.6 结构261<br />13.7 动态过程263<br />13.8 实现264<br />13.9 已知应用267<br />13.10 结果268<br />13.11 相关模式269<br />13.12 致谢270<br />13.13 参考文献270<br />第14章 组件和语言集成的模式273<br />14.1 介绍273<br />14.1.1 软件集成273<br />14.1.2 模式语言轮廓274<br />14.2 组件和语言集成的模式276<br />14.2.1 命令语言276<br />14.2.2 组件打包器281<br />14.2.3 对象系统层285<br />14.2.4 自动类型转换器288<br />14.2.5 分离对象291<br />14.3 已知应用与技术投射294<br />14.3.1 文件档案系统再设计294<br />14.3.2 MHP产品线的硬件选择295<br />14.3.3 TclCL和XOTcl/SWIG297<br />14.3.4 用SPLIT OBJECT配置外观298<br />14.3.5 语义查找服务300<br />14.3.6 Apache Axis303<br />14.4 结论303<br />14.5 致谢304<br />14.6 参考文献304<br />第15章 成功框架开发的模式307<br />15.1 介绍307<br />15.2 项目背景307<br />15.2.1 数据访问层框架308<br />15.2.2 Web门户网站框架308<br />15.3 路线图309<br />模式1 重用的具体证据309<br />模式2 简明的优点312<br />模式3 技能小组314<br />模式4 试点应用程序315<br />模式5 小对象317<br />模式6 基于试点的测试319<br />模式7 框架用户参与321<br />模式8 多变更请求323<br />15.4 结论324<br />15.5 致谢325<br />15.6 参考文献325<br />第VI部分 元 模 式<br />第16章 高级模式编写329<br />16.1 简介329<br />16.2 现有的工作330<br />16.3 "What”解决方案332<br />16.4 "How”过程333<br />16.5 "Why”问题335<br />16.6 Dead Weasels336<br />16.7 解决方案中的限制条件提示337<br />16.8 一致“Who" 339<br />16.9 指向细节的指针340<br />16.10 致谢342<br />16.11 参考文献342<br />第17章 语言设计者的模式语言343<br />17.1 介绍343<br />17.1.1 LDPL基础343<br />17.1.2 LDPL中应用的示例346<br />17.2 模式语言347<br />17.2.1 局部修复349<br />17.2.2 限制条件的群集353<br />17.2.3 局部对称356<br />17.2.4 限制条件的分解362<br />17.2.5 比例的层次364<br />17.2.6 交叉连接367<br />17.2.7 区别370<br />17.2.8 聚合372<br />17.2.9 共同点374<br />17.2.10 空隙376<br />17.3 结论378<br />17.4 参考文献378<br />第18章 审阅语言383<br />18.1 设置环境383<br />18.2 三次迭代385<br />18.3 审阅者了解被审阅者387<br />18.4 半片面包388<br />18.5 主体情况389<br />18.6 作者为主390<br />18.7 匹配问题与解决方案391<br />18.8 令人信服的解决方案(“啊”效果)392<br />18.9 限制条件定义问题393<br />18.10 平衡上下文395<br />18.11 战争故事396<br />18.12 形式服从功能397<br />18.13 小模式398<br />18.14 结束语399<br />18.15 致谢399<br />18.16 参考文献399<br />第19章 草原式住宅模式401<br />19.1 在草原上401<br />19.1.1 眺望所和庇护所402<br />19.1.2 Hildebrand的本质特征403<br />19.1.3 Alexanderian的说明403<br />19.1.4 作者的注解404<br />19.2 形式服从优势特性405<br />19.3 眺望所与庇护所407<br />19.4 锚一样的烟囱408<br />19.5 悬桁平台410<br />19.6 带状窗户411<br />19.7 庇护所一样的壁炉412<br />19.8 眺望视角413<br />19.9 隐藏的垂线414<br />19.10 迂回的路径415<br />19.11 评价与结论416<br />19.12 致谢417<br />19.13 参考文献417<br />作者介绍419