概念
策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。
使用场景
1.在系统里面许多类,类之间区别仅在于方法行为,那么策略模式可以动态的从一个对象在许多行为中选择一种行为
2.一个系统需要动态地在几种算法中选择一种
策略模式的实例
抽象策略类
public interface Strategy(){
public void print();
}
具体策略类
public class PrintA implements Strategy{
public void print(){
System.out.println("我是A");
}
}
public class PrintB implements Strategy{
public void print(){
System.out.println("我是B");
}
}
环境角色
public class Context{
private Strategy strategy;
public Context(Strategy strategy){
this.strategy = strategy;
}
public void contextInterface(){
strategy.print();
}
}
测试
public static void main(String[] args){
Context context = new Context(new PrintA());
context.contextInterface();
Context context = new Context(new PrintB());
context.contextInterface();
}