模板方法模式定义
定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
模板方法模式结构图
模板方法模式角色介绍
抽象类:AbstractClass,在抽象类中定义了一系列基本操作,可以是具体的,也可以是抽象的,每一个基本操作对应算法的一个步骤,在其子类中可以重定义或实现这些步骤。同时,在抽象类中实现了一个模板方法,用于定义一个算法的框架,模板方法不仅可以调用在抽象类中实现的基本方法,也可以调用在抽象类的子类中实现的基本方法。
具体子类:ConcreteClass,它是抽象类的子类,用于实现在父类中声明的抽象基本操作以完成子类特定算法的步骤,也可以覆盖在父类中已经实现的具体基本操作。
模板方法模式结构代码
抽象类:
public abstract class AbstractClass {
/**
* 模板方法
*/
public void templateMethod(){
doSomething();
doAnything();
}
/**
* 具体方法
*/
protected abstract void doSomething();
/**
* 具体方法
*/
protected abstract void