关于作者
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
《增强现实:技术、应用和人体因素》内容简介:本书共分四部分,23章。第一部分阐述了增强和沉浸式显示器以及它们的历史,虚拟空间
Web安全设计之道-.NET代码安全.界面漏洞防范与程序优化 本书特色 黑客入侵、挂马、网页篡改……网络系统安全的种种问题令人困扰,是否有方法能彻底解决这些安全...
《信息时代的世界工厂》,最关切我们未来的“思想@网络.中国”丛书之一,互联网中国传媒参考书。我们生活在“信息时代”。我们的
《企业重组的税会处理与筹划》内容简介:本书内容涵盖了企业重组的所有主要形式,包括债务重组、股权收购、资产收购、企业合并、企
《讲述中国历史》内容简介:这是一部美国历史学家魏斐德从全球范围来解析中国历史的著作,堪称其40年中国史研究集大成之作!内容涵
《使用HTML5和Node构建超媒体API》探讨了超媒体API的设计,介绍了作为超媒体API的构件块的超媒体因子,并讲解了基本格式、状态转
ValuabletipsandtricksforusingthelatestversionofGoogleAnalyticsPackedwithinsidert...
Fundamentalandtechnologicaltopicsareblendeduniquelyanddevelopedclearlyinninechap...
《全国会计从业资格考试标准化教材(大纲解析版):财经法规与会计职业道德》内容简介:全国会计从业资格考试标准化教材(大纲解析
本书以敏捷软件开发为中心,系统阐述了敏捷原则和实践的先进理念和重要意义,并分别讲解了Scrum、极限编程、精益和看板四套敏捷实
《高质量零售》内容简介:在技术变革和需求变革共同驱动下,新零售对零售业进行了全要素、多维度、系统化的创新与变革,实现了交易
《写给架构师的Linux实践》内容简介:本书首先概述Linux项目的设计方法,然后讲解在设计此类项目时,所要注重的核心理念,以及在用
《儒匠——程泰宁传》内容简介:他痴迷武侠小说,却误打误撞地闯入建筑殿堂;他是第一位也是至今唯一一位被国外知名出版机构收入世
《语文课超有趣:部编本语文教材同步学(六年级·上册)》内容简介:《语文课超有趣(6年级上部编本语文教材同步学)》与新版语文教
《C++程序设计教程》是《C++程序设计教程》的第二版。然而从指导思想、内容结构、写作特点等方面,都以全新的面貌呈现于读者。全
《职业院校专业群课程体系构建研究》内容简介:本书由三部分组成。第一部分是导论,介绍了职业院校专业群建设以及专业群课程体系框
Clojure是一种基于Java虚拟机的动态编程语言。如果你要转移到函数式编程,或是要应对来自并发的挑战,那么,Clojure是你的首选语
《曾国藩那套本事》内容简介:本书是一部汇集曾国藩做人做事智慧的成功学全书,将其做人做事的思想精华有机结合,揭示了曾国藩成为
VisualBasic程序设计教程 本书特色 本书特色:与本书配套的《visual basic程序设计教程题解与上机指导》(第四版)已出版。电子教案及例题程序代...
《MATLAB小波分析超级学习手册》内容简介:本书对小波分析在MATLAB中的应用进行了详细的介绍,全书以小波为主题展开叙述,不仅对小