template method 模板方法模式
模板方法,换一种说法,叫钩子函数或者回调方法。也就是说,父类定义好整体流程,一些关键的步骤抽象出钩子函数,交给具体的子类实现。这个就是模板方法模式了。说到底,还是多态,百分之90的设计模式,都和多态有关。(在面向对象语言中,接口的多种不同的实现方式即为多态。或者是抽象父类的多种不同的子类。)
public class Main {
public static void main(String[] args) {
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");
}
}
Java里的ClassLoader类加载器,就是用的模版方法
java里的类加载过程是“双亲委派”,整个流程(也就是模版)已经定好,我们自定义类加载器,只需重写 findClass 这个钩子函数,双亲委派机制就会帮我们实现类的加载。