模板方法模式:定义一个操作中算法的骨架(即模板方法),而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 例如:应用程序上下文运行主要包括 初始化init,刷新refresh,关闭close,而不同的类型的上下文的init,refresh,close的具体实现可能会有所不同,也可能相同。但是这三个步骤的顺序是一定不会改变的。 因此既可以定义一个抽象类,在抽象类中声明init,refresh,close并提供初始实现,可以是空实现。然后在定义一个run方法,run方法内部来调用这三个方法,完成工作。而这个run方法就是模板方法,它 定义了上下文运行的算法骨架。 当我们需要对三个过程的某些过程进行特殊化处理,就只需要创建一个上下文类来继承抽象类,并定制化重写里面的三个方法即可。 作用: 1.当我们需要修改算法骨架时间,例如增加一个过程,就只需要修改抽象类,达到一处修改,处处生效的效果,利于维护; 2.子类可以选择性实现父类方法,以达到代码复用,提高开发效率 使用场景: 当要完成在某个过程,该过程要执行一系列步骤 ,这一系列的步骤基本相同,但其个别步骤在实现时 可能不同,通常考虑用模板方法模式来处理