模板方法模式
其定义如下: Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.Template Method lets subclasses redefine certain steps of an algorithm without changing the algorithm's structure.(定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。)
实际上模板方式就是封装了一个流程,例如我们需要查询一些数据,数据先进行过滤,过滤完后将查询的结果进行排序,排序后输出,我们就可以这样写:
public abstract class AbstractTemplate {
public final void handle(int[] datas) {
//过滤
filter(datas);
//排序
sort(datas);
//打印
console(datas);
}
private void console(int[] datas) {
for (int i = 0; i < datas.length; i++) {
System.out.println(i);
}
}
protected abstract void sort(int[] datas);
protected abstract void filter(int[] datas);
}
我们的子类继承该方法时,必须实现sort方法和filter方法,打印方法可以选择重写。但是handle的过程是不可以改变的,这就是模板方法模式。