模版模式是通过在抽象方法定义执行顺序,并将抽象方法设定为只有子类实现,但不设计独立访问的方法。简单说:提前安排了。
其实很简单,看如下例子:
- 定义一个抽象类
public abstract class TemplateABS {
public String operationSequence(){
return method1() +"\n" + method3() +"\n" + method2();
}
protected abstract String method1();
protected abstract String method2();
protected abstract String method3();
}
- 写实现类,并将抽象方法实现。这里不需要关系方法是怎么编排的。只需要实现抽象方法。
public class TemplateABSImpl extends TemplateABS{
@Override
protected String method1() {
return "i am method one ;";
}
@Override
protected String method2() {
return "我是方法2";
}
@Override
protected String method3() {
return "hello , what is you name ? my name is method3 ";
}
}
- 最后看测试方法。
public class Test {
public static void main(String[] args) {
TemplateABS templateABS = new TemplateABSImpl();
String s = templateABS.operationSequence();
System.out.println(s);
}
/**
* 测试结果
*
* > Task :Test.main()
* i am method one ;
* hello , what is you name ? my name is method3
* 我是方法2
*
*/
}
模版模式:定义统一结构,执行标准是非常方便的,调用者不需要关心调用逻辑,按照统一方式执行即可。类的继承类也只需要实现具体的业务逻辑即可。其中模版模式也解决了子类通用方法,放到父类优化设计。让每一个子类只需要做自己应该完成的内容。