模板方法设计模式

代码

// 模板方法模式 举例
public class BankTemplateMethod {
    public static void main(String[] args) {
       BankTemplate temp = new DrawMoney();
       temp.process();
    }
}
//父类
abstract class BankTemplate{
    public void takeNumber() {
        System.out.println("排队取号");
    }
    //具体办理的业务 --> 钩子方法
    public abstract void transact();
    
    public void evaluate() {
        System.out.println("反馈评分");
    }
    
    //模板方法 , 把基本操作组合在一起 , 且子类不能重写
    public final void process() {
        this.takeNumber();
        this.transact();
        this.evaluate();
    }
}

//子类
class DrawMoney extends BankTemplate{
    @Override
    public void transact() {
        System.out.println("我要取钱!");
    }
}

class ManageMoney extends BankTemplate{
    @Override
    public void transact() {
        System.out.println("我要理财!");
    }
}
原文地址:https://www.cnblogs.com/Anonymity-zhang/p/14303895.html