设计模式15周年——温故而知新
文/潘加宇1994年10月,“DesignPatterns:ElementsofReusableObject-OrientedSoftware”,即广为人知的《设计模式》出版。该书自出版后共重印36次,被翻译成13种其他语言,而且有不计其数的兄弟书籍面世,“言必称模式”成为一种时髦或一种病,可谓影响深远。2009年是《设计模式》出版的十五周年,informIT刊登了Larry...
文/潘加宇 1994年10月,“Design Patterns:Elements of Reusable Object-Oriented Software”,即广为人知的《设计模式》出版。该书自出版后共重印36次,被翻译成13种其他语言,而且有不计其数的兄弟书籍面世,“言必称模式”成为一种时髦或一种病,可谓影响深远。 2009年是《设计模式》出版的十五周年,informIT刊登了Larry O'Brien对该书相关人士的系列纪念专访。GoF中的John Vlissides已经于2005年11月因脑瘤去世,另外三位作者Erich Gamma(现为IBM杰出工程师)、Richard Helm(现供职于波士顿咨询集团)和Ralph Johnson(现在UIUC任教)都接受了采访。 针对书中的第一句话“设计面向对象软件是困难的,而设计可复用的面向对象软件就更困难”,Ralph Johnson认为这句话今天依然适用,虽然现在的10万行代码比以前的10万行代码能干的事情要多得多,但软件的规模也变大了。 问到《设计模式》中的哪些地方需要作出变化时,Erich Gamma认为分类需要修改,并且增加一些模式,他建议作如下新的分类: 核心: 组合、策略、状态、命令、迭代器、代理、模板方法、门面(Facade)。 创建型:工厂、原型、生成器、依赖注入。 外围型:抽象工厂、访问者、装饰、中介者、类型对象、空对象、扩展对象 。 其他:蝇量、解释器。 Erich Gamma还谈到一件趣事——现在风靡的iPhone SDK和《设计模式》的关系。iPhone SDK基于NeXTStep面向对象框架,该框架在书出版之前就存在了,它也是《设计模式》灵感的一个来源。像适配器、桥接、代理和责任链模式都是参考了这个框架。所以,当他学习iPhone SDK时,发现自己对那些库很熟悉,因为他知道里面使用了哪些模式。 《设计模式》前言的作者Grady Booch回顾了十五年前该书出版前的软件开发技术,他认为《设计模式》是针对90年代初各种方法学思想更高级别的抽象。Linda Rising也回忆了该书在OOPSLA 94上首发时的盛况:长龙一直从Addison-Wesley的摊位前面一直排到展厅的走廊!
更多推荐
所有评论(0)