关于作者
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
本书解答了101个建筑设计中的关键问题,从建筑入门必须的知识,到弄清楚建筑设计过程中容易熟视无睹的问题,以一图一文的形式,将
Theexplosivegrowthofe-commerceandonlineenvironmentshasmadetheissueofinformations...
本书收集了作者在试验心理学这一研究领域发表过的五篇最著名的论文以及其他若干论文。每篇旧论文后面都有作者的后记,回顾该文发
《Word/Excel 2010办公应用实战从入门到精通(超值版)》内容简介:本书通过精选案例引导读者深入学习,系统地介绍了Word 2010和Ex
《东游西荡》内容简介:本书是新锐作家大头马的非典型旅行文学作品,是一本游荡世界的私人笔记。大头马用保罗·索鲁式的吐槽和碎碎
Allrelevantcomponentsofamobileradiosystem,fromdigitalmodulationtechniquesovercha...
《当代生命科学中的政治纠缠》内容简介:本书以2005年韩国黄禹锡干细胞事件为主轴,辅以历史与当下生命科学技术案例,展开比较研究
《西安史话》内容简介:本书只是对西安厚重历史的故事呈现,举重若轻;只是对西安3100多年建城史和1100多年建都史的粗线勾勒,挂一
《大国寡品》内容简介:本书正是对中国制造业现状形象的概括:中国制造有数量没质量、有商标没品牌,与国际大牌"同质不同价”。同样
中文版AutoCAD机械设计经典技法118例-含光盘1张 本书特色 《中文版AutoCAD机械设计经典技法118例(附光盘)》编著者郭文亮、郭领艳。全书通过11...
WiththehelpoftheInternetandaccompanyingtools,creatingandpublishingonlinemapshasb...
《黑客与安全技术指南》内容简介:这是一本专门介绍并分享黑客与安全技术的入门书,内容从基础知识出发,通过相关实例为读者剖析计
C++程序设计教程 内容简介 本教材是为高等学校计算机专业、电类和信息类专业学生学习高级语言程序设计而编写的。本教材根据高级语言程序设计的基本体系编写,结合结构...
《汉水的身世》内容简介:一条古老河流的身世变迁与一个国家的命运血脉相连。罗新、梁鸿、李睿珺 联袂推荐;《人民文学》《收获》重
为使自己倾心倾力建造的东西真正成为建筑,是雇用建筑师?还是成为建筑师?抑或是学会像建筑师那样思考?三种选择虽道理各异,却
∣如果有一天,Google的搜尋引擎突然故障∣GMAIL信件全數消失∣GoogleMaps、GoogleDocs、Google行事曆等所有雲端服務全面停擺∣我
D语言是一种通用的系统和应用编程语言,它保持了生成高效代码以及直接访问操作系统API和硬件的能力。《D程序设计语言》是一本介绍
《Wireshark数据包分析实战(第2版)》从网络嗅探与数据包分析的基础知识开始,渐进地介绍Wireshark的基本使用方法及其数据包分析功
《SQL Server与Oracle迁移指南》内容简介:本书主要对SQL Server与Oracle两种数据库功能间的相互迁移进行对比讲解,向开发人员提供
《保护眼睛大作战》内容简介:陶勇医生爱眼护眼科普漫画!亲子共读!眼科普+近视矫正+常见病预防,30节爱眼护眼科普知识课,200多个