5

设计模式思想还远未广泛应用

 3 years ago
source link: https://blog.csdn.net/lovelion/article/details/11909249
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

设计模式思想还远未广泛应用

reprint.png
LoveLion 2013-09-22 22:17:49 articleReadEyes.png 4047

        1994年,在波特兰举行的OOPSLA (Object Oriented Programming, Systems, Languages and Applications)大会上,Addison-Wesley出版社展示了一本新书——《设计模式》。此后15年,它以各种语言在全球发行,成为总销量达50万的三本技术图书的第一本。此书的四位作者——John Vlissides, Ralph Johnson, Richard Helm和Erich Gamma,后来被合称为“The Gang of Four”(四人帮),简称为“The GoF”:“GoF”则成为此书的代名词。

         GoF本身没有任何新的内容。其真正贡献在于:快刀斩乱麻,对长期存在、非常混乱的各种设计方法加以归纳、命名、定义和编目,清晰列出了一个包含23种设计模式的目录,对设计模式知识在此后15年的快速、规范传播起到了重要作用。

         我个人对三个模式印象最深。

       第一个是Factory。Factory是一个对象,负责生成指定Product的实例。和Factory概念相关的模式不止一个,例如Factory Method和Abstract Factory。利用Factory生成对象实例,可以隐藏对象创建的细节,可以规避显式构造对象方法的一些局限。

         第二个是Iterator。在被Java社区引入后,这个思想变得无所不在。对象通过提供Iterator,可以消除对其内部数据组织方法的依赖。鉴于系统规模的日益扩大,我认为Iterator模式保证对象自身完整性的作用还没有得到足够重视。

         第三个是Visitor。多年来,我对这个备受争议的模式情有独钟。Visitor或许不是模式大家庭中最难懂的成员,但我发现没有任何人(包括我自己),能在实际用过前真正理解它。只有真正用过,它包含的设计思想(无论你认为是好是坏)才会变为我们终身所有。

       这15年来,尽管又有十几种模式被不断总结出来,但究其实质,无一不是上述23种模式的衍生和变种。就像现在天文学家为古代先贤绘制的星座图上的星座添加斑斓的颜色,不过是证明了这些早已存在的星座的美丽。

       在面向对象领域,我们苦苦追求的重用,现在看来就像失败的上帝。正如航天飞机从未拥有设计师承诺的那种非凡再利用能力一样,软件库、框架和组件,也从来没有像很多人想象和希望的那样,真正成为软件重用的基石。倒是设计本身、设计思想、设计模式实现了重用。这15年来,我们在软件开发中的关注重点,逐渐从编程语言、框架转移到了如何用这些模式表达自己思想上来。

       但时至今日,设计模式思想还远未得到广泛、深入应用。这些模式的总结和提出,只是证明我们有可能比过去做得更好,而在实际工作中,各种不好不坏的代码仍在大量产生,占据着主流。因此在未来,我们还要不断与刀耕火种、用锄头搬移火山的落后生产方式持续斗争。而斗争的最终结果,现在还不可预知。

【本文转自《程序员》2009年12月刊 特别专题:设计模式15年】 

文/Brian Foote  译/罗小平

作者简介:Brian Foote,《Pattern Languages of Program Design》系列丛书作者,研究领域包括面向对象编程,设计,重用,语言,框架,软件架构,模式,反射,元架构,软件演化等。

 20130922221511578

主页:http://www.laputan.org/

【作者:刘伟   http://blog.csdn.net/lovelion


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK