定义
定义一个操作中算法的框架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法是一种类行为型模式。
角色
- AbstractClass(抽象类)
定义了一系列基本操作,实现了一个模板方法。 - ConcreteClass(具体子类)
方法分类
- 模板方法
在Java语言中,可以将模板方法定义为final方法。 - 基本方法
- 抽象方法
- 具体方法
- 钩子方法
- 第一类钩子方法可以与一些具体步骤“挂钩”,以实现在不同条件下执行模板方法中的不同步骤。一般情况下,钩子方法的返回值为true。
- 第二类钩子方法就是实现体为空的具体方法,子类可以根据需要覆盖或者继承这些钩子方法。