2009-11-16 51 views

回答

7

因为一些组件的实施战略“的方式来实现的东西”。

的策略模式的要点是让你选择做什么,一个“战略”,在运行时的方式。

名称不参考模式作为一个整体,它指的是执行操作的模式内的对象。

+1

听起来更像是一个“战术”在这一点上,不是? “策略”是不是意味着更大的“总体规划”式范式? – jldupont

+0

@jldupont:不要怪我,我没有说出来! :-) – RichieHindle

+0

是的,但这么多的人这样做,工厂例如.. – Peter

7

策略模式背后的想法是,“算法可以在运行时被选择。” (维基百科,Strategy Pattern)该模式本质上是选择正确的策略(或行为)来解决运行时的特定问题。因此,它的名字。

+0

感觉像比@RichieHindle提供的定义更合适的定义。 – jldupont

4

确实,所有模式都是应用程序设计的“策略”。 Strategy模式虽然需要复杂的逻辑,算法等,并对其进行封装。它可以清理你的代码,并且允许根据不同的条件使用不同的策略。

Ex。我为抵押品编写了一个复杂的利息计算,而不是实际在抵押品类中进行计算,而是将其移入InterestCalcuation(策略)类。然后,当他们开始告诉我的计算需求是不同的,因为InterestCalculation坚持以IInterestCalculation接口,我可以转出,并创造新的计算,我需要和抵押类未受影响,尽可能多...