前言
模版方法其实也就是我们所谓的钩子函数,回调函数,
比如说,我们前端JS经常会写的点击时间,我们只需要实现JS规范的固定方法里面填写,由windows操作系统进行调用。
模版方法在spring源码中也经常用到。
一、类图
二、代码事例
public class TemplateMethod {
//测试
public static void main(String[] args) {
//通过替换 f的对象就可以实现不同模版实现,我们现在可以将new S1();换成new S2();
F f = new S1();
f.p();
}
abstract static class F {
void p() {
m1();
m2();
}
abstract void m1();
abstract void m2();
}
static class S1 extends F {
@Override
void m1() {
System.out.println("s1 -> m1");
}
@Override
void m2() {
System.out.println("s1 -> m2");
}
}
static class S2 extends F {
@Override
void m1() {
System.out.println("s2 *** m1");
}
@Override
void m2() {
System.out.println("s2 *** m2 ");
}
}
}