GoF的《设计模式》之前言、序言和用户指导

从书的前言可知,GoF设计模式是那四个家伙在1994年8月完成的。这本书是给对面向对象设计有一些基本了解的朋友读的。使用设计模式的目的是为了使设计更加灵活、模块化、可重用、可理解。这本书不是那种读一遍就扔在一边的书,所以你不要因为你读一遍而不完全理解它们而担心,就是作者们自己在第一次写的时候也没有完全理解(littlebat注:所以说,把心得和疑惑诉诸文字的过程也是理解和深化的学习过程,这也是我写学习日记的主要因素之一,还有一个主要因素是备忘等等)!这是一本值得反复阅读的书。这本书从酝酿到完成用了很多时间,书的四个作者来自四个国家,并且得到了许多人的帮助和支持(littlebat注:有两大段鸣谢的人名)。这本书只是反应了作者当时对设计的一种思考的记录,必将随着时间的推进而不断发展(littlebat 注:从我在网上看到的的情况来看确实如此,各种语言的设计模式版本出现,各种新的设计模式应该也在发明中,可以说有许多人在用设计模式吃饭,你看看太多的相关书籍就知道了,不过我觉得GoF的设计模式才是它们被公认的源头,所以我就想试着读读这本书的英文电子版了,有必要的话再去买一本英文版的或翻译版纸质书)。

从CD的前言可知,CD版(电子版)的书是在应许多人的反馈于书发行后3年的1997年发行的。CD版的书可以使查阅和使用更方便。这篇前言也总结了他们的书发行3年来的巨大成功,确实达成了他们当初的心愿:使更多的软件工程师从中获益。同样,这篇前言鸣谢了对CD版发行有帮助的人。(littlebat注:这个CD版的好是好,只不过用了javascript和java applet小程序技术,让我在486的古董机在linux控制台下w3m浏览器中无法阅读,特地为读这本书装了一个windows97,当初他们就没有考虑过有人在控制台下读这本书吧。不过,也知足了,况且我目前还是盗版用户呢。)

然后是Rational的那个OOP方面的大腕Grady Booch给他们作的序,开头绕了一大段计算机考古专家考查计算机历史“地层”的话,让我看不懂。他的序的意思就是:GoF的设计模式很成功,能从他们那里学到很多,他们的贡献可以在计算机的发展历史上记上一笔了。哦,这里提到那四个家伙的名字:Erich, Richard, Ralph, and John(littlebat注:好像有个家伙现在已经不在人世了,“四人帮”变成“三人帮”了)。

下面这篇用户指南值得好好读一读,它先是讲了一下这本书分为两大部分:第一部分(第1、2章)是基本概念和案例,第二部分(3、4、5章)是具体的分为3类的23种设计模式;然后它给了你几种阅读23种设计模式的方式,你可以根据自己的实际情况选择一下。这几种方式大概包括:

1、从头到尾依次阅读;

2、顺着设计模式之间的关系读(有一个关系图:Figure 1.1 (page 12) );

3、可以按所着手解决的问题的分类来读(Section 1.6 (page 24) );

   3.5、或者先通读,再按工程中要解决的问题来应用这些模式;(与上是同一段说的)

4、如果你对OO不是很熟的话,可以从几个最简单和通用的模式开始读,这些模式包括:

    * Abstract Factory (page 87)

    * Adapter (139)

    * Composite (163)

    * Decorator (175)

    * Factory Method (107)

    * Observer (293)

    * Strategy (315)

    * Template Method (325)

我暂时选择的阅读方式是上面的3.5的方式,先通读,并对比我在Thinking in Patterns with Java读到的相应的设计模式,以后如果写程序的话再按解决问题的分类“按图索骥”。