zoukankan      html  css  js  c++  java
  • 学习笔记——模板模式Template

    模板模式,主要是利用多态来实现具体算法和父类逻辑的松耦合。父类中TemplateMethod内部定义了相应的算法操作顺序,子类负责实现相应的具体实现。

    举例:

    项目中曾遇到过一个需求,叫做高级价格体系。它对外的调用接口一致,只是在不同的应用场景下(比如普通消费和会员卡消费)计算方法有差异,简化计算流程:

    1.初始化相应数据A()

    2.执行价格计算B()

    3.计算完成后的提示C()

    等。

    父类中的接口函数Run()将此顺序固定为:

    Run()

    {

    A();

    B();

    C();

    }

    不同场景下的子类,各自实现自己的ABC即可,不用关心调用顺序。

    进一步,核心算法B在所有场景下都是一致的,这时,可以将B()设置为private,让子类不用再实现。

  • 相关阅读:
    bzoj2959
    学习笔记::lct
    bzoj3203
    bzoj1319
    bzoj3625
    bzoj3992
    bzoj1565
    bzoj3513
    平常练习动归(1.胖男孩)———最长公共子序列
    2016 noip 复赛 day2
  • 原文地址:https://www.cnblogs.com/dev2007/p/4178608.html
Copyright © 2011-2022 走看看