Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 为什么战略模式被称为战略模式?_Design Patterns - Fatal编程技术网

Design patterns 为什么战略模式被称为战略模式?

Design patterns 为什么战略模式被称为战略模式?,design-patterns,Design Patterns,当然,您可以将其视为一种策略,但这适用于几乎所有的设计模式。那么:为什么呢?因为一些组件实现了策略,“实现某种目标的方法” 策略模式的要点是让您在运行时选择一种做某事的方式,即“策略” 该名称并不是指整个模式,而是指模式中执行操作的对象。策略模式背后的理念是“可以在运行时选择算法。”(Wikipedia)该模式本质上是选择正确的策略(或行为)在运行时解决特定问题。因此,它的名字。所有模式都是应用程序设计的“策略”,这是事实。策略模式虽然采用了复杂的逻辑、算法等,但对其进行了封装。这会清理您的代码

当然,您可以将其视为一种策略,但这适用于几乎所有的设计模式。那么:为什么呢?

因为一些组件实现了策略,“实现某种目标的方法”

策略模式的要点是让您在运行时选择一种做某事的方式,即“策略”


该名称并不是指整个模式,而是指模式中执行操作的对象。

策略模式背后的理念是“可以在运行时选择算法。”(Wikipedia)该模式本质上是选择正确的策略(或行为)在运行时解决特定问题。因此,它的名字。

所有模式都是应用程序设计的“策略”,这是事实。策略模式虽然采用了复杂的逻辑、算法等,但对其进行了封装。这会清理您的代码,并允许根据不同的条件使用不同的策略


例如,我为抵押品编写了一个复杂的利息计算,而不是在抵押品类中实际进行计算,我将其移动到利息计算(策略)类中。然后,当他们开始告诉我计算需要不同时,因为利息计算遵循IInterestCalculation界面,我可以根据需要切换并创建新的计算,并且抵押品类不受影响…

在这一点上听起来更像是一种“策略”,不是吗?“战略”不是意味着一个更大的“总体规划”——比如范例吗?@jldupont:别怪我,我没说出来!:-)是的,我接受了它,因为我想你是对的,但这确实是一个蹩脚的名字:-)我当然不是在责怪任何人:我只是建议,也许这个解释不太合适。感觉比@RichieHindle提供的定义更合适。仍然是一个蹩脚的名字它是蹩脚的,但你能想出更好的定义吗?