本书荣获2005年第十五届Jolt通用类图书震撼大奖。
本书英文影印版被《程序员》等机构评选为2006年最受读者喜爱的十大IT图书之一 。
本书趋近完美,因为它在提供专业知识的同时,仍然具有相当高的可读性。叙述权威、文笔优美。
本书共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。前言先介绍这本书的用法;第1章到第11章陆续介绍的设计模式为 Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton、 Command、Adapter、Facade、Templat Method、Iterator、Composite、State、Proxy。最后三章比较特别。第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计模式等主题,至于第14章则很快地浏览尚未介绍的设计模式,包括Bridge、Builder、Chain of Responsibility、Flyweight、Interpreter、Mediator、Memento、Prototype、 Visitor。第1章还介绍了四个OO基本概念(抽象、封装、继承、多态),而第1章到第9章也陆续介绍了九个OO原则(Principle)。千万不要轻视这些OO原则,因为每个设计模式背后都包含了几个OO原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到OO原则,以方便判断取舍。可以这么说:OO原则是我们的目标,而设计模式是我们的做法。
本书作者Eric Freeman和Elisabeth Freeman是作家、讲师和技术顾问。Eric拥有耶鲁大学的计算机科学博士学位,Elisabath拥有耶鲁大学的计算机科学硕士学位。Kathy Sierra(javaranch.com的创始人)和Bert Bates是畅销的Head First系列书籍的创立者,也是Sun公司Java开发员认证考试的开发者。
本书的产品设计应用神经生物学、认知科学,以及学习理论,这使得这本书能够将这些知识深深地印在你的脑海里,不容易被遗忘。本书的编写方式采用引导式教学,不直接告诉你该怎么做,而是利用故事当作引子,带领读者思考并想办法解决问题。解决问题的过程中又会产生一些新的问题,再继续思考、继续解决问题,这样可以加深体会。作者以大量的生活化故事当背景,例如第1章是鸭子,第2章是气象站,第3章是咖啡店,书中搭配大量的插图(几乎每一页都有图),所以阅读起来生动有趣,不会感觉到昏昏欲睡。作者还利用歪歪斜斜的手写字体,增加“现场感”。精心设计许多爆笑的对白,让学习过程不会太枯燥。还有模式告白节目,将设计模式拟人化成节目来宾,畅谈其内在的一切。
本书大量采用UML的Class Diagram(Static Structure Diagram)。书中的例子程序虽然都是用Java编写,但是本书所介绍的内容对于任何OO语言的用户都适用,包括C++和C#。每一章都有数目不等的测验题。每章最后有一页要点整理,这也是精华所在。
引子
谁适合读这本书?
我们知道你的大脑在想什么
元认知
让你的大脑就范
技术审校
致谢
1 欢迎来到设计模式世界:设计模式入门
模拟鸭子应用
Joe想到继承
利用接口如何?
软件开发的不变真理
分开变化和不变部分
设计鸭子的行为
测试鸭子的代码
动态地设置行为
封装行为的大局观
“有一个”比“是一个”更好
策略模式
共享模式词汇的威力
我如何使用设计模式?
设计箱内的工具
习题解答
2 让你的对象知悉现况
气象观测站
认识观察者模式
出版者+订阅者=观罕者模式
五分钟短剧:观察主题
定义观察者模式
松耦合的威力
设计气象站
实现气象站
使用Java内建的观察者模式
java.util.Observable的黑暗面
设计箱内的工具
习题解答
……
3 装饰者模式:装饰对象
4 工厂模式:烘烤OO的精华
5 单件模式:独一无二的对象
6 命令模式:封装调用
7 适配器模式与外观模式:随遇而安
8 模板方法模式:封装算法
9 送代器与组合模式:管理良好的集合
10 状态模式:事物的状态
11 代理模式:控制对象访问
12 复合模式:模式中的模式
13 与设计模式相处:真实世界中的模式
A 附录A:剩下的模式
设计模式(Design Pattern)很重要,不需要我多说。你瞧,程序员几乎人手一本四人组(Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides)所著的《设计模式》。打个比喻:信耶稣的人都要读圣经,而信OO的人都要读四人组的《设计模式》,这就是OO的圣经。
更有趣的是,有人还不只买这本书的原版书、连它的光盘版、和中译本也一并买了收藏,可见这是一本多么受到重视的书。我打探过这本书的销售量,它畅销的程度令人咋舌。
许多人反映,四人组的《设计模式》不容易阅读。对于不容易阅读的书,会有已经悟道的人写出白话版或注释版,以飨后进。所以圣经和佛经都有注释版,用更白的方式阐述其中的道理,而我认为《Head First 设计模式》也是因应这样的需求而产生,它可以被视为是白话版、搞笑版、漫画版的《设计模式》。《Head First 设计模式》比起《设计模式》好读得多了,内容也相当有趣。相信我,要写出这样的一本书绝对比写一本正儿八经的书难上许多,可见作者煞费苦心。作者的用心换来空前的成功。《Head First 设计模式》得到相当正面的读者响应,连《设计模式》原创者Erich Gamma也慨然为《Head First 设计模式》写一段推荐文来“作保证”。《Head First 设计模式》还得到2005年的Jolt Award大奖,风光至极!