策略模式是对于相同的对象,该模式提供一种工具,使用户可以通过所提供的不同策略来对该对象进行操作。用一个通俗的例子来讲就是,一碗还没有加卤的打卤面,这碗面就是顾客需要操作的对象,卤子有:鸡蛋酱,牛肉酱,还有沙拉酱(沙拉酱什么鬼)。策略模式就相当于店家给顾客提供了几种卤子,又给了顾客一个勺子,让顾客来自行调味。和工厂模式不同的是,工厂模式相当于顾客告诉waiter要什么口味的打卤面然后waiter去叫厨师给做一碗出来,顾客并不清楚卤子是如何加到面条上的(到底是是用勺子加上去的还是用手加上去的)。
例:
放卤子的桌子。
所提供的卤子。
盛卤的勺子。
加卤!
完成,
(可以开吃了)
截图来源:菜鸟教程(http://www.runoob.com/design-pattern/strategy-pattern.html)