关于作者
Jason McC. Smith,2005 年毕业于北卡罗莱纳州立大学教堂山分校,获计算机科学博士学位。该校也是元素模式的诞生地,元素模式当时是模式查询和识别系统(System for Pattern Query and Recognition,SPQR)项目的组成部分。Smith 博士因其在校的研究项目而荣获两项美国国家专利,一项与
SPQR 所采用的技术相关,另一项则来自 FaceTop 分布式文档协作系统。
此前,Smith 博士在物理仿真工程和咨询界工作过多年,取得了华盛顿州立大学的物理学和数学学士学位,值得一提的项目包括声纳和海洋环境仿真、电子工程仿真、商用和军用飞机飞行仿真,以及实时图形训练系统等。在 IBM 沃森研究中心工作的四年,使 Smith 博士有机会将从 SPQR 和 EDP 目录中获得的经验加以组织,并应用到大量的软件实体中,包括遗留系统和现代系统。
Smith博士现在供职于华盛顿州柯克兰市的The Software Revolution公司,任资深研究科学家。在那里,他持续地优化 EDP 目录,并寻找各种方法来推进公司在自动控制现代化及遗留系统改造方面的业务目标。
目 录
第1章 设计模式介绍 1
1.1 部落神话和部落智慧 5
1.2 艺术还是科学 9
1.2.1 生搬硬套地对待模式 9
1.2.2 模式和实现语言的相关性讨论 10
1.2.3 从神话到科学 12
第2章 元素模式 13
2.1 背景 14
2.2 定位、动机和方法 17
2.2.1 解析装饰器 18
2.2.2 纵身兔穴 21
2.2.3 语境 31
2.2.4 设计空间 34
2.3 核心 EDP 44
2.4 结论 45
第3章 模式实例记法 47
3.1 基本原理 47
3.2 PIN 箱 51
3.2.1 简易 PIN 箱 52
3.2.2 标准 PIN 箱 54
3.2.3 扩展 PIN 箱 58
3.2.4 堆叠 PIN 箱与多重性 61
3.2.5 剥离和合并 65
3.3 结论 69
第4章 EDP的运用 71
4.1 模式的组成 71 同位素 76
4.2 改造装饰器 81
4.3 重构 96
4.4 大局观 108
4.5 为什么需要阅读附录 114
4.6 高级主题 115
4.6.1 重点文档与培训 115
4.6.2 指标 116
4.6.3 程序化分析 119
4.7 结论 119
第5章 EDP编目 121
创建对象 123 检索 132 继承 136 抽象接口 145 委托 151 重定向 157 集聚 165 xvi
递归 171 归复方法 178 扩展方法 187 委托型集聚 193 重定向型递归 199 信托型委托 206 信托型重定向 215 表亲信托型委托 222 表亲信托型重定向 229
第6章 中间模式结构 237
实现方法 239 检索型创建 243 检索型共享 248 对象标识符 253 对象递归 260
第7章 GoF设计模式成分解析 269
7.1 创建型模式 270
7.1.1 抽象工厂 270
7.1.2 工厂方法 274
7.2 结构型模式 278
7.2.1 装饰器 278
7.2.2 代理 282
7.3 行为型模式 284
7.3.1 职责链 284
7.3.2 模板方法 286
7.4 结论 291
附录 ρ演算 293
A.1 依赖运算符 294
A.2 传递律和同位素 297
A.3 相似性 298
A.4 EDP 形式化 299
A.5 组合及化简规则 303
A.6 模式实例记法和角色 306
A.7 EDP 定义 307
A.7.1 创建对象 307
A.7.2 检索 308
A.7.3 继承 310
A.7.4 抽象接口 310
A.7.5 委托 311
A.7.6 重定向 312
A.7.7 集聚 312
A.7.8 递归 313
A.7.9 归复方法 313
A.7.10 扩展方法 314
A.7.11 委托型集聚 315
A.7.12 重定向型递归 315
A.7.13 信托型委托 316
A.7.14 信托型重定向 317
A.7.15 表亲信托型委托 318
A.7.16 表亲信托型重定向 319
A.8 中间模式定义 320
A.8.1 实现方法 320
A.8.2 检索型创建 321
A.8.3 检索型共享 322
A.8.4 对象标识符 323
A.8.5 对象递归 324
A.9 GoF 设计模式定义 325
A9.1 抽象工厂 325
A9.2 工厂方法 326
A9.3 装饰器 328
A9.4 代理 329
A9.5 职责链 330
A9.6 模板方法 331
参考文献 333
从零进阶!-数据分析的统计基础 本书特色《从零进阶!数据分析的统计基础》共 6 章,分别讲解了数据分析的步骤和方法、描述性统计分析、抽样估计、假设检验、方差分析...
《坚持社会主义办学方向》内容简介:坚持社会主义办学方向是对马克思主义教育本质思想的继承和发展,反映了以习近平同志为核心的党
微信公众平台应用开发方法.技巧与案例 本书特色 本书是目前微信公众平台应用开发领域内容*全面、系统和深入的一本书,也是技术版本*新的。由著名的资深微信公众平台应...
《超级面试官》内容简介:面试是人才招聘过程中的重要一环,面试官的水平直接影响到所招人员的素质高低。那么,面试官该具备哪些基
Spring框架是主要的开源应用程序开发框架,它使得Java/J2EE开发更容易、效率更高。本书不仅向读者展示了Spring能做什么?而且揭示
《北海道漫步》内容简介:作为近年来热门的旅行目的地,北海道以其独特的自然风貌及冰雪景观吸引着世界各地的旅行者。本书从北海道
《重阳》内容简介:《重阳》是一部为国人量身打造的传统节日知识读本。重阳历史悠久,节俗丰富,是重要的传统节日之一。在本书中,
《Internet与WWW程序设计教程》(第3版)以大量生动、实用的示例讲述了如何编写多层的、客户/服务器的、数据密集的、基于Web的应用
《二战尖端武器鉴赏指南(珍藏版)》内容简介:本书筛选了大量自一战结束至二战结束的划时代高尖端武器,以及当时各国主力、或者具
《Python编程做中学》内容简介:本书是一本零基础的Python编程入门书。全书介绍了Python的基本知识、条件语句、循环语句、列表、函
Thefollow-uptoourpopulartitle"WebDesign:BestStudios",thisnewinstallmentsbringsyo...
《ASP.NET MVC 企业级实战》内容简介:ASP.NET MVC 是微软官方提供的以MVC模式为基础的ASP.NET Web应用程序框架。MVC 将一个W...
VB-MAPP语言行为里程碑评估及安置程序-(全2册) 本书特色 这套《语言行为里程碑及安置程序》为教育人员和家长对孤独症和其他发展性障碍孩子的学习、语言和社会...
Namedoneofthegreatestmindsofthe20thcenturybyTime,TimBerners-Leeisresponsibleforo...
《黑客与安全技术指南》内容简介:这是一本专门介绍并分享黑客与安全技术的入门书,内容从基础知识出发,通过相关实例为读者剖析计
SystemVerilog验证 本书特色 本书可以作为学习system verilog验证语言的初级阶段读物。书中描述了语言的工作原理并且包含了很多例子,这些例...
《不打骂、不宠溺、刚刚好的教养力》内容简介:本书通过平和教养与孩子联结,杜绝粗暴教育与过度养育,以情感引导帮助孩子发展自律
《基础设施ppp项目公司管理与实践》内容简介:PPP模式是公共基础设施建设中发展起来的一种优化的项目融资与实施模式,是一种以各参
《下一代产品开发:如何提高研发生产率降低成本和缩短开发周期》作者MichaelE.McGrath是国际上产品战略和产品开发领域久负盛名的专
《理智与情感》内容简介:人文社本版“奥斯丁文集”首次亮相 简·奥斯丁处女作,与《傲慢与偏见》堪称姐妹篇 简·奥斯丁在十九岁时