1.策略模式的定义
定义一系列的算法,把他们一个个封装起来,并且使它们可以相互替换,本模式使得算法可独立于使用它的客户而变化
2.策略模式的UML图
3.代码实现
public interface Strategy{
public void algorithmInterface();
}
public class ConreteStrategyA implements Strategy{
public void algorithmInterface(){
System.out.println("A");
}
}
public class ConreteStrategyB implements Strategy{
public void algorithmInterface(){
System.out.println("B");
}
}
public class ConreteStrategyC implements Strategy{
public void algorithmInterface(){
System.out.println("C");
}
}
public class Context{
private Strategy strategy;
public Context(Strategy strategy){
this.strategy=strategy;
}
public void contextInface(){
this.strategy.algorithmInterface();
}
}
public class Client{
public static void main(String[] args){
int i=0;
Strategy strategy=null;
if(i==0){
strategy=new ConreteStrategyA();
}else if(i==1){
strategy=new ConreteStrategyB();
}else if(i==2){
strategy=new ConreteStrategyC();
}
Context context=new Context(strategy);
context.contextInterface();
}
}
4.策略模式的本质: 分离算法,选择实现。