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

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

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

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

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

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

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

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

    特定环境

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

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

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

    一类问题

    • 若干类重复相似逻辑

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

    解决方案

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

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

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

    优劣

    优点:

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

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

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

    参考

    模板方法模式,作者 :lenotang

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

  • 相关阅读:
    sql server 获取本月的始末时间
    超时时间已到
    sql server定时自动备份
    创建连接服务器
    date制作电子时钟
    C#继承(三)
    C# Split分割
    Dom动态添加属性
    date制作电子时钟(二)
    全局遮罩 shade
  • 原文地址:https://www.cnblogs.com/CoolSoul/p/4984834.html
Copyright © 2011-2022 走看看