请教下模板模式
public abstract class Template { //抽象模板
protected abstract void eatBreakfast();
protected abstract void wash();
protected abstract void dressUP();
public final void morning() {
System.out.println("---起床---");
wash();
dressUP();
eatBreakfast();
System.out.println("---去上班---");
}
}
public class DailyLifeA extends Template { //实现模板
public void eatBreakfast() {
System.out.println("喝牛奶");
}
public void wash() {
System.out.println("洗澡");
}
public void dressUP() {
System.out.println("穿正装");
}
}
public class Client{ //客户端
public static void main(String[] ags) {
Template template;
template = new DailyLifeA();
template.morning();
template = new DailyLifeB();
template.morning();
}
}
输出结果:
---起床---
洗澡
穿正装
喝牛奶
---去上班---
这样是吧某些流程都封装起来等待子类来实现了 但是如果我的流程改变了 我的某个实现不想要eatBreakfast()这个步骤了,但是如果不实现这个的话程序还会报错该怎么办呢?网上搜了下说是用钩子调用控制流程-。-但还是么有理解呀