模板方法的使用

模板方法主要用在步骤确定的情景中,比如你去银行办理业务,流程可能是

1、排队取号

2、具体业务办理

3、反馈评分

像这样的1,3步骤都是固定的,只有步骤2才需要具体处理,所以我们只关心步骤2 就可以了,就可以使用模板方法处理。

什么是模板方法呢?模板方法定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现。这样新的子类可以在不开遍一个算法结构的前提下重新定义该算法的的某些特定步骤。他的核心是:处理步骤父类中定义好,具体实现延迟到子类中定义。

首先定义一个抽象类,里面的抽象方法是需要子类重新定义的

public abstract class BankTemplateMethod {

    public void takeNumber() {
        System.out.print("排队区号!");
    }

    //钩子方法,子类去实现
    public abstract void transact();

    public void evaluate() {
        System.out.print("反馈评分!");
    }

    public final void process() {
        this.takeNumber();
        this.transact();
        this.evaluate();
    }

}

然后在客户端使用是这样的

public class Client {
    public static void main(String[] args) {
        BankTemplateMethod lBankTemplateMethod = new DrawMoney();
        lBankTemplateMethod.process();
    }

    static class DrawMoney extends BankTemplateMethod {
        @Override
        public void transact() {
            System.out.print("我要取款!!");
        }
    }
}

可以看到模板方法使用起来简单易懂,符合生活实际,如果在项目中用到的话会大大提高代码质量。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值