0

如果您看起来都处理多个对象,那么为什么我们有两种模式来处理一件事呢?他们两者有什么区别?我看过他们俩都看过《四人帮》这本书。

4

3 回答 3

0

如果您学习过 GoF 书籍,那么请研究创建模式和操作模式的区别。另请参阅工厂模式和策略模式有什么区别?

于 2013-10-27T14:59:00.857 回答
0

我很惊讶这个问题经常出现,因为工厂和战略完全属于两个不同的类别。工厂是创造的;战略是可操作的。我不需要进一步解释,因为 Stack Overflow 传奇人物@tvanfosson就此事创建了这篇出色的帖子

还要记住,两者可以同时共存。您可能有一个工厂,可以生产可以注入到类中的策略。

更有趣的问题是 Strategy 和Template Method之间的区别,这两种相似的模式在一个重要方面有所不同。这就涉及到继承与委托的整个讨论,这对于 OO 开发人员来说是一件非常容易理解的事情。

于 2013-10-27T15:16:27.697 回答
0

您无法仅通过查看代码或分类来理解差异。要正确掌握 GoF 模式,请寻找它们的意图:

策略:“定义一系列算法,封装每个算法,并使它们可互换。策略让算法独立于使用它的客户而变化。”

工厂方法:“定义一个用于创建对象的接口,但让子类决定实例化哪个类。工厂方法让一个类将实例化推迟到子类。”

这里有一个关于它们的解释:工厂方法和策略设计模式之间的区别

于 2013-10-28T17:32:39.653 回答