模板模式

框架与细节

场景


抽象类制定了运行框架流程,子类负责具体步骤实现
即父类固定大框架公共实现,子类定制小细节,封装不变部分,扩展可变部分

代码


实现

Sample
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public abstract class Goal{
abstract void step1();
abstract void step2();
abstract void step3(); //template method

public void achieve(){
step1();
step2();
step3();
}
}
public class SpecificGoal extends Goal{
void step1(){};
void step2(){};
void step3(){};
}

运行

Sample
1
2
Goal g = new SpecificGoal();
g.achieve();

应用


java.util.AbstractList
get方法为abstract模板方法,内部迭代器next流程会调用

java.lang.ClassLoader
findClass方法为abstract模板方法,具体实现类提供