设计模式-模板模式

1. 1 模板模式的定义

定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中。

1.2 设计模式的结构

(1) 抽象类(AbstractClass):

负责给出一个算法的轮廓和骨架。它由一个模板方法和若干个基本方法构成。

① 模板方法:templateMethod() 定义了算法的骨架,按某种顺序调用其包含的基本方法。

② 基本方法:是整个算法中的一个步骤,包含以下几种类型。

  • 抽象方法:abstractMethod(),在抽象类中申明,由具体子类实现。
  • 具体方法:commonMethod(),在抽象类中已经实现,在具体子类中可以继承或重写它。
  • 钩子方法:hookMethod(),在抽象类中已经实现,包括用于判断的逻辑方法和需要子类重写的空方法两种。钩子就是给子类一个授权,让子类来决定模板方法的逻辑执行。

2. 例子

(1)去银行办理业务一般要经过以下4个流程:

取号、排队、办理具体业务、对银行工作人员进行评分等。

其中取号、排队和对银行工作人员进行评分的业务对每个客户是一样的,可以在父类中实现,但是办理具体业务却因人而异,它可能是存款、取款或者转账等,可以延迟到子类中实现。

(2)一个人每天会起床、吃饭、做事、睡觉等,其中“做事”的内容每天可能不同。

让子类实现具体做事的内容。

(3)西游记里面菩萨定好的 81 难,这就是一个顶层的逻辑骨架。

(4)spring 中对 Hibernate 的支持,将一些已经定好的方法封装起来,比如开启事务、获取 Session、关闭 Session 等,程序员不重复写那些已经规范好的代码,直接丢一个实体就可以保存。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值