本篇详解 模板方法模式,首先我们要知道 概念是什么意思, 模板一词 说明 你要干什么大方向已经定好了,像我们高中写英语作文一样 有了模板文章,我们大方向 是抄模板文章的内容,但是为了避嫌 我们也会改一些语句,以证明我们是 自己写的,具体该真没地方要看个人的偏好了( 要看具体情况而定);
PS:
模板方法模式,就是指:一个抽象类中,有一个主方法,再定义1...n个方法,
可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,
重写抽象方法,通过调用抽象类,实现对子类的调用,
代码实现如下:、
计算模板
package com.desionmodel.action.type01.templatemethod;
public abstract class AbstractCalculator {
/*主方法,实现对本类其它方法的调用*/
public final int calculate(String exp,String opt){
int array[] = split(exp,opt);
return calculate(array[0],array[1]);
}
/*被子类重写的方法*/
abstract public int calculate(int num1,int num2);
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;
}
}
package com.desionmodel.action.type01.templatemethod;
public class Plus extends AbstractCalculator {
@Override
public int calculate(int num1,int num2) {
return num1 + num2;
}
}
测试如下:
package com.desionmodel.action.type01.templatemethod;
public class Test {
public static void main(String[] args) {
String exp = "8+8";
AbstractCalculator cal = new Plus();
int result = cal.calculate(exp, "\\+");
System.out.println(result);
}
}
总而言之就是 公共的方法为实际方法,灵动的地方设计成 抽象方法,让子类自己去实现
提高了代码的重用性,并设定了规范!