模版方法模式(Template Method):定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义算法的某些定义步骤。

需要注意的是,一般的模板方法需要用
final
修饰,防止子类重写模板方法。


根据上面的代码,我们可以分析出来:
模版访问模式包括的角色:
抽象类:负责实现一个算法的骨架,他是由一个**final修饰的模版方法和若干个基本方法组成的
**
具体子类:实现抽象类中所定义的抽象方法,并完成子类子类需要的特定算法步骤
基本思想就是:算法只存在于父类中,容易修改。如果需要修改算法,只需要修改父类的模板方法或者已经实现的某些步骤,子类就会继承这些修改。