过分设计会影响生产力,因为当别人接过一个这样的设计时,他不得不花些时间来了解设计的细微之处,然后才能舒服地扩展或维护它。
过分设计总是悄悄地发生,许多设计师和程序员甚至都没有意识到自己正在过分设计。当他们的公司发现团队生产力下降时,很少有人知道过分设计在其中扮演的角色。
程序员们会过分设计,也许主要的原因是他们不想被糟糕的设计困住。糟糕的设计常常跟代码结合得过于紧密,所以很难改进。我也曾经遇到过这种事,所以我才会这么喜欢使用模式预先做好设计。
模式,万灵药
当我第一次开始学习模式的时候,它们向我展示了一种灵活、精妙而优雅的面向对象设计方法,这正是我非常想掌握的。在系统地学习了模式之后,我就开始使用它们来改进以前的系统、构造以后的系统。由于我知道模式能带来怎样的效果,所以我觉得自己走的肯定是一条正确的路。
但是,随着时间的推移,模式的威力让我对更简单的编写代码的方式视而不见。只要发现有两种或者三种不同的计算方法,我马上就跑去实现Strategy模式,但是实际上一个简单的条件表达式会更简单、更容易实现,也更加实用。
有一件事情让我对模式的专注显露无遗。当时,我和另一个人一起写程序,我们俩已经写了这样一个类:它实现了Java的TreeModel接口,用来在一个树型窗口控件中显示特定对象的图案。我们的代码能够工作,但是树型控件在显示时会调用每个被显示对象的toString()方法,但这个方法并不能返回我们想要的信息。我们也不能修改toString()方法,因为系统的其他部分对这个方法还有依赖。于是,我们开始想办法。习惯所致,我马上就想到了模式。首先浮现在我脑海中的是Decorator
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




