首页 > 解决方案 > YAGNI 原则应用于设计模式的意义何在?

问题描述

我最近阅读了“Head First Design Patterns”。这本书写得很好,值得一读。它通常通过首先介绍一个问题和一个非常“幼稚”的问题解决方案来开始每一章。在接下来的页面中,提出了更多要求和约束,例如添加更多功能或更新行为。这本书再次提供了更新的“幼稚”方法。在某种程度上,当“幼稚”的方法弄乱了解决方案(事情开始出错)时,这本书会驱使读者采用一种全新的方法——目标设计模式。

在其他地方,我学到了一个缩写为“YAGNI”的原则,你不需要它,它指出“总是在你真正需要的时候实施,永远不要在你预见到你需要它们的时候实施。”

我现在想知道,关于“YAGNI”原则,“Head First Design Patterns”是否以无意义的方式解释事物?因为,在某种程度上,给定一组要求,我们应该为问题寻找最简单和最干净的解决方案,对吧?

标签: design-patternsyagni

解决方案


YAGNI + Design Patterns == Refactoring

有一种关于设计模式的观点主张重构模式而不是设计模式。《重构到模式 》一书就是这种观点的例证。Martin Fowler 在赞同这本书时说,

......大多数流行的四人帮模式......不需要预先设计,而是随着系统的发展而演变。

这也是 Head First Design Patterns 采用的方法,并且与 YAGNI 完全一致。不要做大的预先设计来决定你可能需要模式的地方。相反,随着系统的发展重构模式。让模式随着时间的推移而出现。

相关:首先应该是什么——设计模式还是代码?


推荐阅读