设计模式的重要性毋庸多言,每一位有经验的程序员都应该熟练掌握设计模式的原理和应用。学习和掌握设计模式,可以说既简单,又困难。如果学习方法对头,掌握了科学的思维(其中最重要的应该是抽象思维和逻辑思维)方法和学习方法,那么学会熟练地运用设计模式就很简单;如果学习方法不对头,那么就会越学越复杂,老也看不懂,不会用,不敢用。
如果你因为读了大名鼎鼎的《设计模式》这本书,就觉得 Design Patterns 很难、很深奥、很难掌握,这完全是一种误解。实话实说,著名的四博士 15 年前的那本《设计模式》并不适合作为初学者的入门读物。学习设计模式应该可以有一种更简单、更轻松、更快捷的方式。所以,除了向大师致敬以外,这也是我想写《大道至简:实话设计模式》这本免费公开网络书的一个原因。
实话:GoF 的《设计模式》不适合作为初学者学习设计模式和 OOD 的入门读物。
凡提 Design Patterns,人们必会从 GoF 设计模式谈起。GoF(Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides 四位博士)的里程碑著作《设计模式》无疑是一本软件工程史上划时代的经典名著,设计模式的开山之作。过去 15 年来它一直被国内外的专业和非专业人士反复地引用、宣讲、解析和解读,导致诠释、演绎 GoF 设计模式的各类佳作也层出不穷,出现了百舸争流、舍我其谁的喜人局面。
然而将近 15 年过去了,当代软件工程无论在 OOD 的理念和方法,还是在 OO 编程语言、实现技术等方面都有了许多显著的进步和发展,《设计模式》中的许多内容已显得老旧。从与时俱进的角度看,我们觉得它不适合作为 21 世纪设计模式初学者的入门读物或教材,它更适合作为一部经典技术历史文献供有经验的程序员、软件工程师和专家们进行参考、研究和收藏。
为什么说《设计模式》不适合作为初级程序员学习的入门教材,我想可能有很多原因。首先,贯穿全书的实例主要围绕一个文档编辑器的开发,还有不少地方介绍的是更为抽象、难懂的文法解释和处理,而如今国内大多数程序员可能都工作在 IT 应用和系统开发领域,包括企业应用、行业信息化、互联网/Web 应用开发等等,估计很少有人会再去从头开发文档编辑器,因而书中的这些应用案例往往不易为普通读者,尤其是初学者所理解和熟悉。
此外,书中的实现代码、举例也主要采用了现在许多年轻程序员所不熟悉的 Smalltalk 和 C++ 等上世纪 80、90 年代流行的旧版本 OO 编程语言。而近十年来一批更为成熟和高级的当代 OO 编程语言(如 Java、C#、VB.NET 等等)和建模技术(如 UML)已经得到了非常广泛的应用,同时也出现了一批相当成熟的主流 OO 框架、重用库和应用开发技术平台,如 .NET Framework、Struts、Spring、JSF 等等。在这些框架、平台中,就大量使用了许多经典和创新的设计模式。如果一本设计模式的入门读物能够结合这些当代的编程语言、技术、框架和平台及其应用进行介绍,必然会增加不少时效性和可读性。
以上列举的这些情况,无疑都增加了《设计模式》这部经典的阅读理解难度。简而言之,尽管 GoF《设计模式》中的 OO 软件设计原理、原则和思想精髓可能永不过时,但是书中的许多内容和例子确实离大家的日常工作有点远,如果初学者拿这本书作为学习教材或入门读物难免让人有舍易求难、舍简求繁之感。
张恂
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13633641/viewspace-557949/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13633641/viewspace-557949/