【大话设计模式】——行为型模式总结(算法)

   在上一篇博客中,我已经将行为型模式分为了四类,现在就总结一下第一类——算法,用到算法的模式包含策略模式,以及模板方法。


一、概念


1、Strategy


(1)官方解释

    它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。


(2)类图




(3)个人理解


    策略就是一种方法,做一件事情有多种方法,方法之间可以进行替换,只要完成这件事就可以,顾客可以不必知道具体用的哪种方法。例如:给自行车上链,有多种方法,可以先上前边后上后边,也可以先上后边后上前边,最后的结果都是可以将自行车的链条安好。

2、TemplateMethod


(1)官方解释


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


(2)类图




(3)个人理解


    父类定义一个骨架,具体是什么样的,由子类去决定。例如:我们写论文,给了一个论文框架,里面的内容由自己去丰富。这就是利用了模板方法。

二、比较


两者虽然都是和算法相关的,但是却有很大不同。
策略:多种算法,可以随意替换,但子类不可以重新定义算法步骤。
模板:一种算法,子类去继承并丰富,可以重新定义算法的某些步骤。

三、总结


    把复杂的知识变简单,只是看着是没办法变简单的,只有罗列,比较,最后再总结,才会发现其实没什么难的啊,想让它多简单就会简单,中间只差一个“做”字!


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

幸运的梦之星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值