Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
6年前关闭。
Improve this question
它是如何工作的,用途是什么,何时应使用它?
现在,您可能希望在程序执行时即时更改
有几种方法可以进行此模拟:使用条件语句和标志变量是一种方法。策略模式是另一种:将
如果要更改汽车的性能,则只需更改电动机即可。 (在程序中比在现实生活中容易,对吗?;-))
如果您有很多复杂的状态,这将非常有用:您可以更轻松地更改和维护它们。
想改善这个问题吗?更新问题,使其仅关注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