最精简:设计模式之模板方法模式

public abstract class BankTest {
          
   
    public static void main(String[] args) {
          
   
        DrawMoney drawMoney = new DrawMoney();
        drawMoney.dothing();
        ManagerMoney managerMoney = new ManagerMoney();
        managerMoney.dothing();


    }

    public void havaNumber(){
          
   
        System.out.println("取号办理业务");
    }

    /**
     * 钩子方法,具体实施业务操作
     */
    public abstract void transact();
    public void talk(){
          
   
        System.out.println("给刚才的服务打个分
");
    }

    /**
     * final限制不可更改执行顺序
     */
    public final void dothing(){
          
   
        havaNumber();
        transact();
        talk();
    }
}
class DrawMoney extends BankTest{
          
   
    @Override
    public void transact() {
          
   
        System.out.println("我要存款");
    }
}
class ManagerMoney extends BankTest{
          
   

    @Override
    public void transact() {
          
   
        System.out.println("我要理财");
    }
}
经验分享 程序员 微信小程序 职场和发展