设计模式之模板方法模式 templateMethod

代码实现

public abstract class BankTemplateMethod {

    //具体方法
    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();
    }
}
View Code
public class Client {

    public static void main(String[] args) {
        BankTemplateMethod btm = new DrawMoney();
        btm.process();
        
        //采用匿名内部类
        BankTemplateMethod btm2 = new BankTemplateMethod(){

            @Override
            public void transact() {
                System.out.println("我要存钱");
            }
        };
        
        btm2.process();
    }
}


class DrawMoney extends BankTemplateMethod{

    @Override
    public void transact() {
        System.out.println("我要取款");
    }
    
}
View Code
原文地址:https://www.cnblogs.com/qingdaofu/p/7478150.html