本书起因

写本书源于我一次做培训的经历,学生大多是计算机专业的学生或有过一定经验的在职开发者。他们都知道类、方法、构造方法、甚至抽象类、接口等概念,并用Visual Studio写过不少的Windows或Web程序,可是当我提问为什么要用面向对象,它的好处在哪里时,却没有人能完整地讲得出来,多数人的反应是,概念知道的,就是表达不清楚。

针对于此,我就举了中国古代的四大发明中活字印刷的例子(见第1章),通过一个虚构的三国曹操做诗的情景,把面向对象的几大好处讲解了一下,学生普遍都感觉通俗易懂,觉得这样的教学比直接告诉面向对象有什么好处要更加容易理解和记忆。

这就使得我不断地思考这样一个问题,学一门技术是否需要趣味性、通俗性的引导。

我在思考中发现,看小说时,一般情况下我都可以完整地读完它,而阅读技术方面的图书,却很少有真正的每章每页的仔细阅读。尽管这两者是有很大区别,技术书中可能有不少知识是已经学会或暂时用不上的内容,但也不得不承认,小说之所以可以坚持读完是因为对它感兴趣,作者的文字吸引你。而有些技术书的枯燥乏味使得阅读产生了困难,通常读个前几章就留待以后再说了。

技术课的教学同样如此,除非学生是抱着极大的学习动机来参与其中,否则照本宣科的教学、枯燥乏味的讲解,学生一定会被庞杂的概念和复杂的逻辑搅晕了头脑,致使效果大打折扣。也正因为此,往往造成部分学生,学了四年的计算机编程,却可能连面向对象有什么好处都还说不清。

为什么不可以让技术书带点趣味性呢,哪怕这些趣味性与所讲的技术并不十分贴切,只要不是影响技术核心的本质,不产生重大的错误,让读者能轻松阅读它,并且有了一定的了解和感悟,这要比一本书写得高深无比,却被长期束之高阁要好得多。

也正是这个原因,本人开始了关于设计模式的趣味性写作的尝试。