2014年11月15日

[知乎]如何正确地使用设计模式?

作者 zhuangbiaowei

谢邀,不过首先要反对的是问题本身。

优雅?啥意思?优雅的使用?啥意思?优雅的使用设计模式?啥意思?

我决定以自己的思路来谈论“设计问题”。

  • 软件肯定有架构
  • 软件的架构一定是通过人脑的智力活动,主动的设计出来的
  • 我们如果不断的学习和总结,在别人的经验、架构、代码中,的确会发现模式
  • 设计(架构)的目的,首先是为了满足已知的需求,而非应对未知的变化
  • 大多数自作聪明的预测,都会最终导致过度设计

 

所以,使用设计模式,首先需要确认场景:就目前能够明确的需求,设计(架构)需要面对的是怎样一个场景。然后,针对这种场景,选择合适的设计模式。

 

如果,我们与某个架构师发生了如下对话:

  • 问:请问,这里为何要……这样设计?
  • 答:因为,如果出现了……我的这个设计就能够不必修改,直接支持
  • 问:那么,你假设的这种情况,是否会出现呢?
  • 答:……如果它出现了,我们就节约了大量的修改,而且这是一个经典的XX模式

就此我们可以判定,这个架构师想多了。

 

所以,我不来谈什么优雅,我认为恰好满足需求的中庸才是正确的做法。我以儒家的子曰作为结尾:「過猶不及。」

 

外一篇:架构的力量 – 思考IT – 知乎专栏