模式病

来源:互联网 发布:iphone6plus在线软件下载 编辑:程序博客网 时间:2024/04/19 20:29

作者:查德·拉瓦·因(Chad LaVigne)

对于软件架构师来说,设计模式是极有价值的可用工具之一。使用模式,能够创建出更易沟通、更易理解的通用解决方案。模式与良好设计直接相关。这一事实,让“在项目中摆出大量模式展示非凡的架构功力”显得非常诱人。如果发现自己试图把最喜欢的模式硬套在不适用的问题空间(problem space)上,那么你也许是“模式病(pattern pathology)”患者。

许多项目遭遇过这种情况。可以设想,在这些项目中,富有犯创性的(译注1)架构师(the original architect)翻完模式宝典的最后一页之后,搓着双手说:“现在,该首先使用哪一下模式呢!?”。这种思维方式,有点像开发人员开始编写某个类时想“嗯,应该对哪个类进行扩展呢?”。对于减轻必要的复杂性(necessary complexity)而言,设计模式成了俗话所说的到处敲钉的锤子(译注2)时,问题就来了。要小心,不要让你对模式的喜欢,变成了迷恋(infatuation),进而引入超出实际所需的过于复杂的解决方案。

在项目中硬塞进不必要的模式,是过度工程(over-engineering)。设计模式不是魔法,在解决方案中使用它并不能确保获得很好的设计。它们是对常见问题的可重用解决方案,人们记录发现的模式,避免后来人重新发明车轮(wheel)(译注3)。当这些方案能够解决的问题出现时,我们能够识别出来,并恰当地应用设计模式,这才是我们的任务。不要让一展设计模式功力的欲望,遮蔽了务实的真知(pragmatic vision)。应当保持对系统的洞察力,提供切实有效的商业解决方案,使用模式解决适用的问题才是最重要的。

译注1:此处作者是以诙谐的口吻说出的一个反语。

译注2:拿着锤子,到处都是钉子,是软件工程中的著名俚语和典故,指代“以一种方法对待全部问题”的思维模式和问题解决方法。

译注3:“不要重新发明轮子”是软件工程中的另一句著名俚语,指对于前人己经获得稳定解决方案的问题,就不要浪费时重新获解,而要复用。

0 0
原创粉丝点击