模板方法(Template Method)普遍存在于抽象类中,它用一些抽象的方法定义一个算法,而将这些抽象方法的具体实现放到子类中。
模板方法包含两部分:
- AbstractClass 实现一个模板方法,从而定义一个算法的骨架
- ConcreteClass 实现模板方法中抽象的原语操作
AbstractClass
abstract class AbstractClass {
void templateMethod() {
prepare();
execute();
end();
}
abstract void prepare();
abstract void execute();
abstract void end();
}
ConcreteClass
class ConcreteClass extends AbstractClass {
@Override
void prepare() {
}
@Override
void execute() {
}
@Override
void end() {
}
}