标签:
意图
定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。
策略模式多用在算法决策系统中,外部用户只需要决定用哪个算法即可。
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
标签:
原文地址:http://www.cnblogs.com/gxl00/p/5018566.html