今天我们来讲策略模式:
策略模式就是见人说人话,见鬼说鬼话。
不同的情况下,用不同的算法(实例)
统一的情景接口:
interface Strategy{
say();
}
说人话与说鬼话情景以及操作:
//见人情景
class StrategyPerson implements Strategy{
say(){
return "人话";
}
}
//见鬼情景
class StrategyGhost implements Strategy{
say(){
return "鬼话";
}
}
上下文(规定遇到的是人还是鬼):
class Context{
Strategy strategy;
//设置当前见鬼还是见人
set( Strategy _strategy){
strategy = _strategy;
}
//具体操作
say(){
strategy.say();
}
}
使用者:
Context context = new Context();
context.set(StrategyPerson strategyPerson);
context.say();
context.set(StrategyGhost strategyGhost);
context.say();
策略策略,不同的场景做不同的事情而已。