模板方法模式: 定义在一个操作中的一个算法框架,把一些步骤推迟到子类中去实现,模板方面模式让子类不需要改变算法结构而重新定义特定的算法步骤。
功能:
1.解决冗余问题。
2.将某些方法延迟到子类,子类可根据不同情况而改变,子类的新方法不会引起既有父类的功能变化。
3.易于扩展。
4.父类提供了算法的框架,控制方法的执行流程,而子类不能改变算法流程,常用该模式限定子类方法的调用次序。
5.父类可以把总要的不允许改变的方法屏蔽掉,不让子类去复写。
public abstract class HappyPeople{
public void celebrateSpringFestival{
subscribeTicket();
travel();
celebrate();
}
}
protected final void subscribeTicket(){
//....
}
protected abstract void travel();
protected final void celebrate(){
//...
}
public class PassengerByAir extends HappyPeople{
protected abstract void travel(){
system.out.println("Travelling by Air..")
}
}