Design patterns 为什么战略模式被称为战略模式?
当然,您可以将其视为一种策略,但这适用于几乎所有的设计模式。那么:为什么呢?因为一些组件实现了策略,“实现某种目标的方法” 策略模式的要点是让您在运行时选择一种做某事的方式,即“策略”Design patterns 为什么战略模式被称为战略模式?,design-patterns,Design Patterns,当然,您可以将其视为一种策略,但这适用于几乎所有的设计模式。那么:为什么呢?因为一些组件实现了策略,“实现某种目标的方法” 策略模式的要点是让您在运行时选择一种做某事的方式,即“策略” 该名称并不是指整个模式,而是指模式中执行操作的对象。策略模式背后的理念是“可以在运行时选择算法。”(Wikipedia)该模式本质上是选择正确的策略(或行为)在运行时解决特定问题。因此,它的名字。所有模式都是应用程序设计的“策略”,这是事实。策略模式虽然采用了复杂的逻辑、算法等,但对其进行了封装。这会清理您的代码
该名称并不是指整个模式,而是指模式中执行操作的对象。策略模式背后的理念是“可以在运行时选择算法。”(Wikipedia)该模式本质上是选择正确的策略(或行为)在运行时解决特定问题。因此,它的名字。所有模式都是应用程序设计的“策略”,这是事实。策略模式虽然采用了复杂的逻辑、算法等,但对其进行了封装。这会清理您的代码,并允许根据不同的条件使用不同的策略
例如,我为抵押品编写了一个复杂的利息计算,而不是在抵押品类中实际进行计算,我将其移动到利息计算(策略)类中。然后,当他们开始告诉我计算需要不同时,因为利息计算遵循IInterestCalculation界面,我可以根据需要切换并创建新的计算,并且抵押品类不受影响…在这一点上听起来更像是一种“策略”,不是吗?“战略”不是意味着一个更大的“总体规划”——比如范例吗?@jldupont:别怪我,我没说出来!:-)是的,我接受了它,因为我想你是对的,但这确实是一个蹩脚的名字:-)我当然不是在责怪任何人:我只是建议,也许这个解释不太合适。感觉比@RichieHindle提供的定义更合适。仍然是一个蹩脚的名字它是蹩脚的,但你能想出更好的定义吗?