定义:模板方法模式定义了一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法
的结构即可重定义该算法的某些特定步骤。
public abstract class PersonDay {
/**
* 在模板方法中编写核心算法,这个算法是不会改变的,这个算法被子类继承,可以得到复用。
* 模板方法的流程一般不让子类覆盖,不希望子类去重新定义核心算法,所以模板方法通常被final修饰
*/
public final void day(){
doGetUp();
doEatBreakfast();
doSome();
doSleep();
}
//将行为的具体实现延迟到子类中完成,达到不同的实现效果。
public abstract void doGetUp();
public abstract void doEatBreakfast();
public abstract void doSome();
public abstract void dosleep();
}
public class TeacherDay extends PersonDay{
public void doGetUp(){
System.out.println("学生吃早餐:牛奶、面包");
}
public void doEatBreakfast(){
System.out.println("学生吃早餐:牛奶、面包");
}
public void doSome(){
System.out.println("教书");
}
}