Closed. This question needs to be more focused。它当前不接受答案。












想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。

6年前关闭。



Improve this question




它是如何工作的,用途是什么,何时应使用它?

最佳答案

让我们以简单的方式来说明策略模式:

您有一个带有方法Car()run()类,因此可以在伪语言中使用它:

mycar = new Car()
mycar.run()

现在,您可能希望在程序执行时即时更改run()行为。例如,您可能想模拟电动机故障或在视频游戏中使用“升压”按钮。

有几种方法可以进行此模拟:使用条件语句和标志变量是一种方法。策略模式是另一种:将run()方法的行为委托(delegate)给另一个类:
Class Car()
{
    this.motor = new Motor(this)

    // passing "this" is important for the motor so it knows what it is running

    method run()
    {
        this.motor.run()
    }

    method changeMotor(motor)
    {
        this.motor = motor
    }

}

如果要更改汽车的性能,则只需更改电动机即可。 (在程序中比在现实生活中容易,对吗?;-))

如果您有很多复杂的状态,这将非常有用:您可以更轻松地更改和维护它们。

关于design-patterns - 策略模式如何工作? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/91932/

10-11 18:28