java学习笔记-设计模式14(策略模式)

意图

  定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。

  策略模式多用在算法决策系统中,外部用户只需要决定用哪个算法即可。

public interface ICalculator {  
    public int calculate(String exp);  
}  
public abstract class AbstractCalculator {  
      
    public int[] split(String exp,String opt){  
        String array[] = exp.split(opt);  
        int arrayInt[] = new int[2];  
        arrayInt[0] = Integer.parseInt(array[0]);  
        arrayInt[1] = Integer.parseInt(array[1]);  
        return arrayInt;  
    }  
} 
public class Plus extends AbstractCalculator implements ICalculator {  
  
    @Override  
    public int calculate(String exp) {  
        int arrayInt[] = split(exp,"\+");  
        return arrayInt[0]+arrayInt[1];  
    }  
} 
public class Minus extends AbstractCalculator implements ICalculator {  
  
    @Override  
    public int calculate(String exp) {  
        int arrayInt[] = split(exp,"-");  
        return arrayInt[0]-arrayInt[1];  
    }  
  
}  

测试

public class StrategyTest {  
  
    public static void main(String[] args) {  
        ICalculator cal = new Plus();  
        int result = cal.calculate( "2+8");  
        System.out.println(result);  
    }  
}  

 

  转自:http://blog.csdn.net/zhangerqing/article/details/8243942

原文地址:https://www.cnblogs.com/gxl00/p/5018566.html