java 设计模式之模板方法模式①②
- 定义
- 使用场景
- 思路分析
- 角色分析
- 代码实现
- 钩子方法理解
- 钩子代码实现
奋斗不一定全是为了钱,还有骨子里那份自信、淡定、从容!买得起自己喜欢的东西,去的了自己想去的地方,能承担起该承担的责任,花自己的钱,过有质量的生活!做一个无可替代的自己!
定义
模板方法模式定义了一个算法的步骤,并允许子类别为一个或多个步骤提供其实践方式。让子类别在不改变算法架构的情况下,重新定义算法中的某些步骤。在软件工程中,它是一种软件设计模式,和C++模板没有关连。
设计模式学习,近期我会把23种设计模式都写成博客,敬请期待~
—2021/1/15
百度百科
使用场景
我现在要制作豆浆,首先我需要:
- 准备黄豆子
- 准备红豆,黄豆,黑豆
- 加冰糖
- 打磨成豆浆
大致分为这几步.
按照总体来说,豆浆制作过程基本相同,只是放的配料不一样,我要喝红豆豆浆,就放红豆,我要喝黄豆豆酱就放黄豆,最后也可以选择加不加冰糖,这里就用到了模板方法模式.
思路分析
模板方法模式就是通过定义一个模板,来规范代码的流程
:
RedSoybeanMilkImpl黄豆实现:
客户端(测试代码):
:
重写钩子方法(),修改为不加糖:
客户端(测试代码):
:

总结:
-
模板方法模式还是比较简单的,就是通过一个抽象类规范了代码的流程,具体需要改变的地方,写成抽象方法,让其子类去实现,
-
钩子就是模板方法抽象类中的一个’方法变量’,标识是否执行某一段代码;
完整代码
去设计模式/设计原则主页
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92167 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!