其实就是钩子函数,回调函数===>都是模板方法模式 与观察者模式类似 与观察者模式的关系与区别 写了一个方法,其中调用其他方法定义了一个模板,子类具体实现这些其他方法,再调用模板方法以达到在木板上个性化定制的需求===>整个方法按照模板去执行(更多地指的是顺序) 一般将模板方法的权限设置为包权限或者低权限**(只能重写,不能直接访问)**
UML类图
- 父类调用了他的一个方法,在这个方法中有可能调用了被子类重写的方法
- 子类想要实现特殊的方法时,只需要实现要重写的方法即可
一直在用
- 凡是我们重写一个方法,系统帮我们自动调用的,都可以称作为template模板方法
使用示例
package com.mashibing.dp.TemplateMethod;
public class Main {
public static void main(String[] args) {
// 用接口F接受接口F的实现类C1类型的对象
F f = new C1();
f.m();
}
}
abstract class F {
public void m() {
op1();
op2();
}
// 一般定义成包权限或者低权限(只能重写,不能直接访问)
abstract void op1();
abstract void op2();
}
class C1 extends F {
@Override
void op1() {
System.out.println("op1");
}
@Override
void op2() {
System.out.println("op2");
}
}
🤏随想
- 私有方法可以被继承吗?