行为型模式-模板方法模式

定义:

定义一个算法的步骤框架,而将一部分功能延迟到子类,而使得子类不用改变算法的结构即可改变某些特定的步骤。

类型:

行为型模式

类图:

由抽象方法定义算法的流程,具体的实现交给子类,完成特定的相关步骤。

模板方法模式的结构:

由一个抽象类和一个或一组实现类组成,抽象类中的方法分为3种:

抽象方法:父类中只声明,不加以实现,只定义其规范

模板方法:由抽象类声明并加以实现,一般来说模板方法调用抽象方法来完成主要的逻辑。模板方法大都是final类型,指明父类的模板方法不能被重写

钩子方法:由抽象类声明加以实现,但子类可以扩展,通过扩展钩子方法来影响模板方法的逻辑。


模板方法模式的总结:

优点:

容易扩展:模板方法不易改变,抽象方法容易改变,通过增加实现类的方法实现功能的扩展。符合开闭原则(对拓展开放,对修改关闭 OCP)

便于维护:模板方法,主要逻辑相同,若不使用模板方法设计模式,这些代码零散的分散到不同的类中,不利于维护。

比较灵活:因为有钩子方法,子类的实现可以影响到父类的,但违反了里氏替换原则(LSP)。

缺点:

每个不同的实现都需要定义一个子类,这会导致类的个数的增加,设计更加抽象。

场景:




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值