模板方法模式

目录
  1. 问题
  2. 实现思路
  3. 代码

问题

现实中有流程确定而具体执行不知道的情况,此时可使用模板模式。

实现思路

定义一个抽象类实现部分逻辑并声明一些抽象方法给子类去实现(定义一个操作算法的骨架),当其子类以不同逻辑实现了这些抽象方法时就形成不同的行为(步骤延迟到子类)。使得子类可不改变一个算法的结构即可重定义该算法的某些特定步骤。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 模板类
public abstract class AbstractTemplate {
final void method1() {
...
method2();
...
}
abstract void method2();
final void method3() {...}
}

// 子类
public class ChildClass extends AbstractTemplate {
void method2() {
// TODO 实现之
}
}