zoukankan      html  css  js  c++  java
  • 理解设计模式(模板方法)

      模板方法模式,定义算法骨架及其执行顺序,延伸至子类实现算法逻辑。

    模板方法、基本方法和钩子方法

    • 基本方法:实现算法各步骤的逻辑

    • 模板方法:组合所有基本方法,规定其顺序

    • 钩子方法:决定如何整合各个算法步骤

    根据实际环境的不同,算法逻辑会反生变化

    使用钩子方法,来标记这些变化,随之改变算法的逻辑
    (主要改变是算法步骤执行与否和彼此间执行顺序

    特定环境

    • 算法结构稳定,即若干类逻辑相似

    • 相同逻辑部分可提取成父类基本方法,不同部分留给子类实现

    • 按业务或环境不同,不同部分能够相应变化(钩子方法的不同实现,子类逻辑发生变化)

    一类问题

    • 若干类重复相似逻辑

    • 业务要求实现某领域算法

    解决方案

    模板方法模式,2个角色:

    • 模板类 — 规范算法骨架,封装基本方法、模板方法和钩子方法
      其中,模板方法应定义为final,防止子类修改
      一般由抽象类或接口实现

    • 业务类 — 实现业务逻辑的模板类的具体子类
      按业务需要,补充基本方法、钩子方法的逻辑

    优劣

    优点:

    • 重构若干逻辑相似的类,避免代码重复
    • 符合开闭原则,能够扩展算法的逻辑

    劣势:
    同一算法的延伸过多时,要考虑相同部分和不同部分之间的比重

    若前者比重太小,那么重构这些类,就不一定值得了

    参考

    模板方法模式,作者 :lenotang

    (Template Method)模板方法模式的Java实现,作者 : haolloyin

  • 相关阅读:
    appium工作原理
    Python文件读写模式
    Redis info 参数详解
    MySQL show status 参数详解
    Monit : 开源监控工具介绍
    Ansible(三)
    Ansible(二)
    Ansible(一)
    使用python实现后台系统的JWT认证(转)
    微信公众号-5秒内不回复测试并处理方案,顺便复习php 时间执行
  • 原文地址:https://www.cnblogs.com/CoolSoul/p/4984834.html
Copyright © 2011-2022 走看看