如何分析问题以使其与合适的设计模式相匹配?

pen*_*ake 5 code-analysis design-patterns

我想知道什么应该是一步一步的分析方式,以明确的问题搞清楚可能的设计模式,可以适合在溶液中.

您可以推荐任何指导?

谢谢

Kil*_*oth 8

任何设计模式存储库都会给你提示,例如"这在......时很有用",但通常没有任何索引可以让你查找"信用卡号"并返回"flyweight对象".最接近的东西通常是松散的模式分组,如行为,建构等.

在我看来,通过想知道你应该应用哪种设计模式来解决问题毫无意义.如果您对模式非常熟悉,您会立即注意到它适用以及如何应用.如果你没有看到合适,那么试图按模式进入服务只是为了你可以说"我使用了模式XX,所以设计必须是好的!" 是一个危险的错误.

甚至有人甚至说设计模式首先是一种形式,这表明你的语言表达不够.(这并不像听起来那么疯狂;考虑到WHILE循环或哈希表之类的东西曾经没有出现在编程语言中,那个时代的主程序员必须一次又一次地重新实现它们;现在它们是语法的一部分,没有人会梦想称他们为"模式".)我,我不是那种极端主义者; 我认为精心挑选的设计模式在你使用它时确实非常有用,因为你确信这是一个很好的解决方案,但这需要你彻底了解它,而根据我的经验,这几乎总是要求你自己练习它.模式的价值在于为经常完成的事物提供可识别的名称,

  • +1好听的.我喜欢你如何将设计模式作为你需要深刻理解和使用的东西来解决; 了解它们对您有什么好处,这样您就可以与同行沟通您的意图.而不是'这就是你如何将代码转换为设计模式的融合'方法.我希望更多的人采取前一种方法,因为那些依赖阶梯的人给设计模式的整个概念一个坏名字. (2认同)