策略模式(strategy)

策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户
以基本算法为例子

定义计算接口

public interface ICalculator {
    public int calculate(String exp);
}

定义基本计算解析类

public 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 static void main(String[] args) {
    String exp = "2+8";
    ICalculator cal = new Plus();
    int result = cal.calculate(exp);
    System.out.println(result);
}

你可能感兴趣的:(策略模式(strategy))