场景:当一个1000多行的代码的某些部分可能会改变时,将这一个大的方法拆分成若干小方法,但是调用顺序固定不变,依然是之前的调用顺序,这样就可以重写其中某个方法(即原先大方法的部分代码),受保护的方法不能被重写的就写成private的就可以。
目的:目的是为了更加灵活的组装,方便修改部分代码。
所以模板方法一般是不完整的,至少有一个方法是需要被覆盖的,而父类中只写了一个大致的模板,需要被覆盖,模板需要被继承。
父类作为模板时只关心大体流程,不关心实现细节,细节由子类去实现。
模板方法与父类的区别:父类只是为了代码的重用,而模板方法决定调用关系而不关心实现细节。