程序设计的模式语言(2)

程序设计的模式语言(2)
作 者: 维利斯德斯 科普林 科兹
出版社: 清华大学出版社
丛编项: 软件模式系列
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 程序设计语言学
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

John M.Viissides是位于纽约霍索恩的lBM T.J.Watson研究中心的一位研究人员。他作为设计者、实现者、研究者、演讲者以及咨询顾问在面向对象技术领域已经有超过十年的从业经验了。他是Des『gn patternts:E/eme,7fS 0f Reusable O何ect-Oriented Software一书的合作者(Addison-Wesley,1995年)。James O.Cop¨en是位于伊利诺伊州内珀维尔的贝尔实验室软件生产研究部的一名成员。他的研究兴趣集中在针对软件开发处理的多范例开发方法和组织人类学上,他是Advanced C++:Programming Styles and Idioms(Addison-Wesley,1 995年)一书的作者。Norman L_Kerth是俄勒冈州波特兰的Elite Systems的主要咨询顾问,他为许多公司提供服务以确保它们成功转向面向对象技术,他的业务范围包括规范和设计行为、质量保证、增强式持续处理、项目管理以及构建有效的团队等诸多领域。

内容简介

“具备一种专门技能是一种能力,而将其应用到其他方面则是另一种能力。了解模式就会具备这些能力。.本书由JohnM.Vlissides、Vlissides,JamesO.Coplien和NormanL.Kerth编著。模式是根植于编程文化,根植于一种在当前体系结构下相同名义的设计迁移行为,以及根植于任意文化中永恒的共同部分实践的一种文化形式。本卷是面向专业软件开发者模式系列的第二本书籍。其中介绍的模式可以用于解决在软件设计和开发中经常会遇到的许多问题,包括了面向语言的模式和惯例、通用和专用目的的模式。体系结构模式、处理或者组织模式。解释型模式;以及面向并行编程、分布式系统和反应性系统的模式。本卷中收集的新模式不仅揭示了高级软件开发的秘密,也使得这些秘密易于应用到读者实际的工作中。..JohnM.Vlissides是位于纽约霍索恩的IBMT.J.Watson研究中心的一位研究人员。他作为设计者、实现者、研究者、演讲者以及咨询顾问在面向对象技术领域已经有超过十年的从业经验了。他是Designpatternts:ElementsofReusableObject-OrientedSoftware一书的合作者(Addison—Wesley,1995年)。JamesO.Coplien是位于伊利诺伊州内珀维尔的贝尔实验室软件生产研究部的一名成员。他的研究兴趣集中在针对软件开发处理的多范例开发方法和组织人类学上,他是AdvancedC++:ProgrammingStylesandldioma(Addison-Wesley,1995年)一书的作者。NormanL.Kerth是俄勒冈州波特兰的EliteSystems的主要咨询顾问,他为许多公司提供服务以确保它们成功转向面向对象技术,他的业务范围包括规范和设计行为、质量保证、增强式持续处理、项目管理以及构建有效的团队等诸多领域。...

图书目录

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

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

1.1摘要

1.2介绍

1.3术语

1.4综述

1.4.1局部所有权

1.4.2动态对象之外的资源

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

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

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

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

1.9模式2: 所有者序列

1.10模式3: 共享所有权

1.11相关主题

1.12致谢

1.13参考文献第2章延迟优化: 高效Smalltalk编程模式

2.1性能评估

2.2延迟优化

2.3性能标准

2.4阈值开关

2.5性能度量

2.6热点

2.7实验

2.8可缓存的表达式

2.9缓存临时变量

2.10缓存参数

2.11缓存状态变量

2.12简化

2.13削减临时对象

2.14对象转换

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

2.16连接流

2.17参考文献第3章将Smalltalk代码划分成ENVY/Developer组件

3.1综述

3.2模式语言: ENVY划分

3.3分层和分区域架构

3.3.1独立层

3.3.2独立区

3.4应用中的层

3.5子应用中的区域

3.6两个应用

3.7没有子应用

3.8致谢

3.9参考文献第2部分通用模式

第4章命令处理器

参考文献第5章观察者模式的实现模式

5.1介绍

5.2模式: 目标变化的传递

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

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

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

5.6模式: 消息包

5.7模式: 观察者更新消息

5.8模式: 更新观察者

5.9参考文献第6章封装类树模式

6.1介绍

6.2模式背景

6.3框架示例

6.4类树封装

6.4.1类获取

6.4.2后创建

6.5规范支持

6.5.1类子句

6.5.2类规范

6.5.3类语义

6.6与其他模式的关系

6.7模式格式

6.8小结与结论

6.9致谢

6.10参考文献第7章代理设计模式回顾

7.1摘要

7.2例子

7.3一般模式

7.4上下文

7.5问题

7.6解决方案

7.7结构

7.8动态

7.9实现

7.10第二层模式

7.10.1远程代理

7.10.2保护代理

7.10.3缓存代理

7.10.4同步代理

7.10.5计数代理

7.10.6虚拟代理

7.10.7防火墙代理

7.11组合代理变形

7.12示例的解决方案

7.13相关工作

7.14精选的已知应用

7.15结论

7.16同时参阅

7.17开放问题

7.18致谢

7.19参考文献第8章MOODS: 状态面向对象设计的模块

8.1设计决策树

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

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

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

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

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

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

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

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

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

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

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

8.10.1使用状态对象的分配器

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

8.10.3分配器作为情绪分类器

8.11参考文献第9章购物者

9.1介绍

9.2动机

9.3结构

9.4适用性

9.5参与者

9.6协作

9.7结论

9.8实现

9.8.1遍历提供者组

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

9.9示例代码

9.10相关模式

9.11致谢

9.12参考文献第3部分专用模式

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

10.1摘要

10.2动机

10.3解决方案

10.4适用性

10.5静态和动态结构

10.5.1类、责任和协作者

10.5.2动态协作者

10.6结论

10.7实现

10.8示例代码与使用

10.9已知应用

10.10相关模式

10.10.1装饰者

10.10.2访问者

10.10.3独身者

10.11注释

10.12变形

10.13致谢

10.14参考文献第11章面向对象超媒体应用的设计模式

11.1摘要

11.2介绍

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

11.4NavigationStrategy

11.5NavigationObserver

11.6结束语

11.7致谢

11.8参考文献第12章组织复用: 用于与分布式团队处理卫星遥测的模式

12.1摘要

12.2介绍

12.3项目组织

12.4模式

12.4.1模式1: 松散接口

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

12.4.3模式3: 工厂等级

12.4.4模式4: 处理器

12.5结论

12.6文中引用的模式

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

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

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

12.7致谢

12.8参考文献第13章备份模式: 在面向对象的软件中设计冗余

13.1摘要

13.2目的

13.3别名

13.4问题与上下文

13.5难点

13.6难点解决方案

13.7动机

13.8适用性

13.9结构

13.10参与者

13.11协作

13.12结论

13.13实现

13.13.1创建候选

13.13.2候选的独立性

13.13.3保持当前候选的状态

13.13.4确定正确的功能

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

13.13.6验收测试

13.14示例代码与应用

13.15已知应用

13.16相关模式

13.17小结

13.18致谢

13.19参考文献第14章交叉中断: 对象RDBMS集成的模式语言(静态模式)

14.1摘要

14.2介绍

14.3静态模式(关系方面)

14.3.1表的设计时间

14.3.2将对象描述成表

14.3.3将对象关系描述成表

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

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

14.3.6对象标识符(OID)

14.3.7外键引用

14.4静态模式(对象方面)外键与直接引用

14.5参考文献第15章事务和账户

15.1摘要

15.2介绍

15.3商业事务

15.4将事务处理与存档分开

15.5商业账户

15.6组合事务

15.7调整事务

15.8月底结算

15.9显式业务规则

15.10持续处理

15.11致谢

15.12参考文献第4部分架构模式

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

16.1摘要

16.2软件架构的设计模式

16.3架构模式

16.3.1流水线

16.3.2数据抽象

16.3.3通信进程

16.3.4隐式调用

16.3.5仓库(Repository)

16.3.6解释器

16.3.7主程序和子例程

16.3.8分层架构

16.4致谢

16.5参考文献第17章反射

17.1介绍

17.2例子

17.3结构

17.4动态

17.5实现

17.6示例解析

17.7变形

17.8已知应用

17.9结论

17.10同时参阅

17.11参考文献ⅩⅦ第18章进化、架构和变形

18.1摘要

18.2介绍

18.3软件构造

18.4灵活基础

18.5变形

18.6小结

18.7致谢

18.8参考文献第5部分过程和组织

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

19.1介绍

19.2模式1: 保护变量模式1.1: 持久存取器

19.3模式2: 技能混合

19.3.1模式2.1: 三个子系统

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

19.3.3模式2.3: 通用和专用

19.4模式3: 应用边界

19.4.1模式3.1: 分解确认

19.4.2模式3.2: 内部编辑

19.5模式4: 每团队的子类模式4.1: 模型层次

19.6模式5: 正面模式5.1: 域截取

19.7对这种格式的评价

19.8参考文献第20章决策延迟和捕捉模式语言

20.1介绍

20.2综述

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

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

20.5模式3: 可执行模型

20.6模式4: 向上的可溯性

20.7模式5: 向下的变化

20.8致谢

20.9参考文献第21章团队的组织模式

21.1模式语言: 团队设计

21.2模式1: 目标一致

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

21.4模式3: 团结起来

21.5模式4: 团队确认

21.6参考文献第22章责任和组织结构

22.1介绍

22.2组织结构的问题

22.3模式综述

22.4模型符号

22.5模式1: 团体

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

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

22.8模式4: 多层关联

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

22.10模式6: 关联具体化

22.11模式7: 类型关系

22.12模式8: 责任抽象

22.13模式9: 责任知识等级

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

22.15模式11: 知识等级

22.16致谢

22.17参考文献第23章插曲: 一种竞争开发模式语言

23.1产品

23.1.1产品的最初状态

23.1.2市场调查

23.1.3隐含需求

23.2开发

23.2.1工作序列

23.2.2工作组

23.2.3工作序列报表

23.2.4比较工作

23.2.5完成天数

23.2.6开发插曲

23.2.7不正规的劳动计划

23.2.8工作划分

23.2.9再提交会议

23.3编程

23.3.1需求调查

23.3.2技术备忘录

23.3.3参考数据

23.3.4编程插曲ⅩⅧ

23.4补充模式

23.5参考文献第6部分展示

第24章课堂教学模式

24.1摘要

24.2介绍

24.3本章要讨论的模式

24.4模式1: 重复课程开发

24.5模式2: 鸡和蛋

24.6模式3: 新旧混合

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

24.8模式5: 模块的故事

24.9模式6: 七个部分

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

24.11模式8: 熟悉的例子

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

24.13模式10: 参考例子

24.14模式11: 生动的类比

24.15模式12: 仿真游戏

24.16模式13: 测试游戏

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

24.18模式语言

24.19参考文献第25章演示准备: 用于准备软件演示的一种模式语言

25.1介绍

25.2模式1: 元素识别

25.3模式2: 催化场景

25.4模式3: 易变的代码

25.5模式4: 原型语言

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

25.7模式6: 明智的争论

25.8模式7: 存档场景

25.9结论

25.10参考文献第26章基于文章的网站使用的一种模式语言

26.1A: 文本格式模式

A.1: 自然文本流**

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

A.3: 自然文本目录

26.2B: 文章格式模式

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

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

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

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

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

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

B.7: (介绍性小节)

B.8: (介绍性图片)

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

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

B.11: 引用项

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

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

C.1: 揭露内幕**

C.2: (作者小传**)

C.3: (对应日期**)

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

C.5: (可下载 CGI)

C.6: (联系作者*)

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

C.8: 新文档通知**

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

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

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

D.1: 14.4Kbps 测试*

D.2: (少量图片)

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

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

26.5E: 其他模式

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

E.2: (主页版本*)

26.6致谢

26.7参考Web站点ⅩⅨ第7部分并行编程/分布式系统

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

27.1致谢

27.2参考文献第28章资源交换器: 低开销并行资源管理的一种行为模式

28.1摘要

28.2解决方案

28.3应用

28.4结构

28.4.1类、责任和协作者

28.4.2动态协作

28.5结论

28.6实现

28.7示例代码和使用

28.8已知应用

28.9相关模式

28.10变形

28.11致谢

28.12参考文献第29章客户—分配器—服务器设计模式参考文献第30章主动对象: 并行编程使用的一种对象行为模式

30.1摘要

30.1.1目的

30.1.2别名

30.1.3动机

30.1.4适用性

30.1.5结构及参与者

30.1.6协作者

30.1.7结论

30.1.8实现

30.1.9示例代码

30.1.10已知应用

30.1.11相关模式

30.2参考文献第31章为并行程序选择锁定设计

31.1摘要

31.2例子算法

31.3上下文概述

31.4难点

31.5锁定设计模式索引

31.5.1模式关系

31.5.2解决难点

31.5.3缺陷表

31.6锁定设计模式

31.6.1串行程序

31.6.2代码锁定

31.6.3数据锁定

31.6.4数据所有权

31.6.5并行快捷路径

31.6.6读者/写者锁定

31.6.7分层锁定

31.6.8分配器缓存

31.6.9临界区熔合

31.6.10临界区划分

31.7致谢

31.8参考文献第8部分反应性系统

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

32.1介绍

32.1.1仿真的重要性

32.1.2BASEstar Open

32.2模式1: 面向对象的仿真,事件

驱动的现实

32.3模式2: 具体化事件

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

32.5模式4: 远程控制对象

32.6模式5: 事件驱动

32.7总结

32.8致谢

32.9参考文献第33章容错电信系统模式

33.1介绍

33.2术语

33.3模式: 人工干预最小化

33.4模式: 人最了解

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

33.6模式: 瞬时抑制

33.7模式: 漏桶计数器

33.8模式: SICO首要并总是

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

33.10模式: 欺骗一次

33.11致谢

33.12参考文献第34章利用队列改善交互应用的响应性

34.1摘要

34.2介绍

34.3模式1: 事件队列

34.4模式2: 组合兼容事件

34.5模式3: 处理人为事件

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

34.7结论

34.8致谢

34.9参考文献第35章用于改善反应性系统功能的模式语言

35.1摘要

35.2介绍

35.3问题域历史

35.4模式语言

35.5容量模式

35.5.1模式1: 容量瓶颈

35.5.2模式2: 处理容量

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

35.5.4模式4: 分散负载

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

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

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

35.5.8模式8: 分担负载

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

35.5.10模式10: 信用漏桶

35.6致谢

35.7参考文献