目录
什么是策略模式
策略模式其实是对象多态的应用。由实现同一接口的一组算法组成,通过上层决策放决定调用何种算法,即策略来完成相应的计算处理。
策略模式组成
策略算法抽象接口
public interface Strategy {
void doSomething();
}
具体策略算法实现
public class ConcreteStrategy1 implements Strategy{
@Override
public void doSomething() {
System.out.println("具体策略算法1");
}
}
public class ConcreteStrategy2 implements Strategy{
@Override
public void doSomething() {
System.out.println("具体策略算法2");
}
}
调用算法角色
public class Context {
private Strategy strategy = null;
public Context(Strategy _strategy) {
this.strategy = _strategy;
}
public void doSomething(){
this.strategy.doSomething();
}
}
测试驱动
public class Main {
public static void main(String[] args) {
Strategy strategy = new ConcreteStrategy1();
Context context = new Context(strategy);
context.doSomething();
strategy = new ConcreteStrategy2();
context = new Context(strategy);
context.doSomething();
}
}