【java设计模式】(10)---模版方法模式(案例解析)

一、概念

1、概念

模板方法模式是一种基于继承的代码复用技术,它是一种类行为型模式

它定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

2、举例理解

网上举了一个请客吃饭的例子,我觉得解释的挺好的。我们每个人去请客吃饭。一般都含三个步骤:点单吃东西买单,而且顺序就是从做左到右的。

在这三个步骤中,点单和买单大同小异,最大的区别在于第二步——吃什么?吃面条和吃满汉全席可大不相同,如图1所示

所以从开发角度来分析,有时也会遇到类似的情况,某个方法的实现需要多个步骤(类似“ 请客 ”),其中有些步骤是固定的(类似“点单”和“买单”),而有些步骤并不固定,存在

可变性(类似“吃东西”)。

为了提高代码的复用性和系统的灵活性,我们把"点单"和"买单"的实现放在父类中实现,而对于"吃东西",因为差异性就很大所以在父类中只做一个声明,将其具体实现放在不同的

子类中,在一个子类中提供“吃面条”的实现,而另一个子类提供“吃满汉全席”的实现。通过使用模板方法模式,一方面提高了代码的复用性,另一方面还可以利用面向对象的多态性,

在运行时选择一种具体子类,实现完整的“请客”方法,提高系统的灵活性和可扩展性。

3、结构和说明

AbstractClass:抽象类。用来定义算法骨架和原语操作,在这个类里面,还可以提供算法中通用的实现

ConcreteClass:具体实现类。用来实现算法骨架中的某些步骤,完成跟特定子类相关的功能。

pub
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值