设计模式:模板方法模式

2019-01-21 02:41:14来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

  模板方法模式是编程中经常用到的模式,它定义了一个操作的算法骨架,将某些步骤延迟到子类实现。

这样,新的子类可以在不改变一个算法结构的前提下重新定义该算法的某些特定步骤。

  核心:处理某个流程的代码都已具备,但其中某个节点的代码暂时不能确定,所以将这个节点的代码

实现转移到子类完成。

例子:模拟一个银行取号业务流程。

/**
 * 模擬银行取号排队
 */
public abstract class BankTemplateMethod {

    public void takeNumber(){
        System.out.println("取号排队");
    }
    
    //办理具体业务
    public abstract void transact();

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

    /**
     * 模板方法,把基本操作組合在一起,防止惡意修改,一般用final修飾
     */
    public final void process(){
        this.takeNumber();

        this.transact();

        this.evaluate();
    }
}

  

public class Client {

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

//具体子类如果有其他业务继续定义子类即可
class DrawMoney extends BankTemplateMethod{

    @Override
    public void transact() {
        System.out.println("取款实现");
    }
}

  模板方法模式在平时业务中很常用,基于继承的方式(本质上就是多态)使得也比较容易实现。

模板方法有点类似方法回调,子类具体实现的方法就是一个钩子方法。

在实际业务中,当我们要实现一个算法,整体步骤很固定,但某些部分存在变法,那么可以将变化

部分抽象出来,供子类实现。


原文链接:https://www.cnblogs.com/gcm688/p/10296092.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:关于高并发下kafka producer send异步发送耗时问题的分析

下一篇:JSP页面无法正常加载JS