java 设计模式之模板方法模式(十二)

java 设计模式之模板方法模式①②

  • 定义
  • 使用场景
  • 思路分析
  • 角色分析
  • 代码实现
  • 钩子方法理解
  • 钩子代码实现

奋斗不一定全是为了钱,还有骨子里那份自信、淡定、从容!买得起自己喜欢的东西,去的了自己想去的地方,能承担起该承担的责任,花自己的钱,过有质量的生活!做一个无可替代的自己!

定义

模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。在软件工程中,它是一种软件设计模式,和C++模板没有关连。

设计模式学习,近期我会把23种设计模式都写成博客,敬请期待~
—2021/1/15

百度百科

使用场景

我现在要制作豆浆,首先我需要:

  • 准备黄豆子
  • 准备红豆,黄豆,黑豆
  • 加冰糖
  • 打磨成豆浆

大致分为这几步.

按照总体来说,豆浆制作过程基本相同,只是放的配料不一样,我要喝红豆豆浆,就放红豆,我要喝黄豆豆酱就放黄豆,最后也可以选择加不加冰糖,这里就用到了模板方法模式.

思路分析

模板方法模式就是通过定义一个模板,来规范代码的流程

:

RedSoybeanMilkImpl黄豆实现:

客户端(测试代码):

:

重写钩子方法(),修改为不加糖:

客户端(测试代码):

:

java 设计模式之模板方法模式(十二)

总结:

  • 模板方法模式还是比较简单的,就是通过一个抽象类规范了代码的流程,具体需要改变的地方,写成抽象方法,让其子类去实现,

  • 钩子就是模板方法抽象类中的一个’方法变量’,标识是否执行某一段代码;

完整代码

去设计模式/设计原则主页

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92167 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月13日
下一篇 2021年1月13日

相关推荐