Emove

  • 首页
  • 归档
  • 分类
  • 标签

  • 搜索
context 反射 channel LRU BeanDefinition JVM 装饰者模式 MyBatis 快慢指针 归并排序 链表 hash表 栈 回溯 贪心 主从复制 二分查找 双指针 动态规划 AOF RDB 规范 BASE理论 CAP B树 RocketMQ Sentinel Ribbon Eureka 命令模式 访问者模式 迭代器模式 中介者模式 备忘录模式 解释器模式 状态模式 策略模式 职责链模式 模板方法模式 代理模式 享元模式 桥接模式 外观模式 组合模式 适配器模式 建造者模式 原型模式 工场模式 单例 UML 锁 事务 sql 索引

模板方法模式

发表于 2020-04-04 | 分类于 设计模式 | 18 | 阅读次数 155

模板方法模式

基本介绍

  1. 模板方法模式(Template Method Pattern),又叫模板模式,在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需求重写方法实现,但调用将以抽象类中定义的方法进行
  2. 简单说,模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,是的子类可以不改变一个算法的结构,就可以冲定义该算法的某些特定步骤
  3. 这种类型的设计模式属于行为型模式

钩子方法

​ 在模板方法模式的父类中,我们可以定义一个方法,他默认不做任何事,子类可以视情况要不要覆盖它,该方法称为“钩子”

注意事项和细节

  1. 基本思想是:算法只存在于一个地方,也就是父类中,容易修改,需要修改算法时,只要修改父类的模板方法或者已经实现的某些步骤,子类就会继承这些修改
  2. 实现了最大化代码复用。父类的模板方法和已实现的某些步骤会被子类继承而直接使用
  3. 既统一了算法,也提供了很大灵活性。父类的模板方法确保了算法的结构保持不变,同时由子类提供部分步骤的实现
  4. 该模式的不足之处:每一个不同的实现都需要一个子类实现,导致类的个数增加,是得系统变得庞大
  5. 一般模板方法都加上final关键字,防止子类重写模板方法
  6. 模板方法模式使用场景:当要完成某个过程,该过程执行一系列步骤,这一系列的步骤基本相同,但其个别步骤在实现时可能不同,通常考虑模板方法模式来处理
# context # 反射 # channel # LRU # BeanDefinition # JVM # 装饰者模式 # MyBatis # 快慢指针 # 归并排序 # 链表 # hash表 # 栈 # 回溯 # 贪心 # 主从复制 # 二分查找 # 双指针 # 动态规划 # AOF # RDB # 规范 # BASE理论 # CAP # B树 # RocketMQ # Sentinel # Ribbon # Eureka # 命令模式 # 访问者模式 # 迭代器模式 # 中介者模式 # 备忘录模式 # 解释器模式 # 状态模式 # 策略模式 # 职责链模式 # 模板方法模式 # 代理模式 # 享元模式 # 桥接模式 # 外观模式 # 组合模式 # 适配器模式 # 建造者模式 # 原型模式 # 工场模式 # 单例 # UML # 锁 # 事务 # sql # 索引
代理模式
命令模式
  • 文章目录
  •   |  
  • 概览
林亦庭

林亦庭

less can be more

87 文章
11 分类
54 标签
RSS
Github
Creative Commons
© 2021 林亦庭
粤ICP备20029050号