版权声明:本文为博主原创文章,未经博主允许不得转载。个人公众号:百草疯茂 https://blog.csdn.net/wang_pengyu/article/details/84925935
package com.test.DPs.XingWei.Template;
/**
* 行为型:Template-模板 外观:作用面为 对象
*
* 用途:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
* 理解:相对于Strategy模式:接口 和 抽象类。例子:排序和计算。
*/
abstract class AbstractCalculator{
abstract int calculate(int a, int b);
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 final int calculate(String exp, String opt){
int array[] = split(exp, opt);
return calculate(array[0], array[1]);
}
}
class Plus extends AbstractCalculator{
@Override
int calculate(int a, int b){
return a+b;
}
}