策略模式定义了一系列算法,并将每一个算法封装起来,使它们相互可以替换,且算法的变化不会影响到用户。
1. 定义一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口;
2. 定义一个抽象类,提供辅助函数;
// 定义一个接口,为一系列实现类提供统一的方法
public interface ICalculator {
int calculator(String exp);
}
// 减法运算
public class Minus extends AbstractCalculator implements ICalculator {
@Override
public int calculator(String exp) {
int arrayInt[] = split(exp, "-");
return arrayInt[0] - arrayInt[1];
}
}
// 加法运算
public class Plus extends AbstractCalculator implements ICalculator{
@Override
public int calculator(String exp) {
int arrayInt[] = split(exp, "\\+");
return arrayInt[0] + arrayInt[1];
}
}
// 定义一个抽象类,辅助计算方法
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;
}
}
String exp = "2+8";
ICalculator cal = new Plus();
int result = cal.calculator(exp);