怎样应用设计模式

来源:互联网 发布:php curl 不等待返回 编辑:程序博客网 时间:2024/04/28 16:29
    <!--@page { size: 21cm 29.7cm; margin: 2cm }P { margin-bottom: 0.21cm }-->

ErichGamma的一次谈话,第一部分,byBill Venners2005-5-23

摘要:

在开发者中,设计时,采用设计模式是一种比较流行的方法。但是用什么比较合适的方法去考虑设计模式?在这次访谈中,《设计模式》这本书的作者ErichGamma,和BillVenners讨论用正确的方法去思考好使用设计模式。


设计模式的真实价值

BillVennersBruceEckel和我在教授设计课程的时候,我们发现人们真的想知道Gang of FourGoF)模式。设计模式的市场是很大的。

ErichGamma:仍然,但十年后呢?

BillVenners:是的。人们想知道模式。我怀疑模式是一个通用语。关于模式,我想揭开这个欺诈去找出什么是人们应该知道的。他们应该以什么样的态度去应对模式?人们怎样才能使用设计模式去完成好一项工作?什么是最真实的价值。

ErichGamma:我认为整个模式能帮助人们以面向对象的方法去思考:你怎样利用多态,结构设计,团对,平衡责任,提供能插入的行为。模式超越了在对象中应用图形形状这样的例子,在形状类中的继承和使用一些多态的绘画方法。当你懂得设计模式的时候,你才真正的学习了多态。所以设计模式是一种学习面向对象和设计的好的方法。

以上所说的,每一个独立的模式都有不同的特征,在一些地方你需要更灵活的模式,或者需要形成一种抽象的事物,或者使你的代码变少。这就是在一个大系统中真正的大问题。你怎样维护好你的层次?你怎样避免循环依赖?GoF模式提供很少的工具去帮你解决这些问题。他们不是用来提供合适的解决方案,它是用来解释权衡关系的。即使模式是从具体使用中抽象出来的,它们也提供给你可实现的线索的价值。我的观点是,事实上,模式是可实现的,那才体现了它们的价值。

模式是从许多有经验的专家中提取出来的。他们能够让你重复一个成功的设计。你可以站在专家的肩膀上,而不必去重新开始。然而,模式能够使许多实现变种,你仍然应该保持清醒的头脑。模式提供给你设计结构的名字,阻挡了他们提供给你一个词汇去描述和讨论一个特殊的设计。

另外一个问题就是我们怎样教授模式。并非我真正知道你应该做什么,但是我认为你不应该做什么,仅仅是进行分类和列举这23种设计模式。这种方法不会带来任何东西。你应该感觉到设计模式的不足之处。我猜想你只是评价一个模式,而没有感觉到模式带来的痛苦。
......to be continue
本文来自http://www.artima.com/lejava/articles/gammadp.html
我尝试着进行翻译,著作权归by Bill Venners

<!--@page { size: 21cm 29.7cm; margin: 2cm }
原创粉丝点击