在上一篇博客中,我已经将行为型模式分为了四类,现在就总结一下第一类——算法,用到算法的模式包含策略模式,以及模板方法。
一、概念
1、Strategy
(1)官方解释
它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。
(2)类图
(3)个人理解
策略就是一种方法,做一件事情有多种方法,方法之间可以进行替换,只要完成这件事就可以,顾客可以不必知道具体用的哪种方法。例如:给自行车上链,有多种方法,可以先上前边后上后边,也可以先上后边后上前边,最后的结果都是可以将自行车的链条安好。
2、TemplateMethod
(1)官方解释
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
(2)类图
(3)个人理解
父类定义一个骨架,具体是什么样的,由子类去决定。例如:我们写论文,给了一个论文框架,里面的内容由自己去丰富。这就是利用了模板方法。
二、比较
两者虽然都是和算法相关的,但是却有很大不同。
策略:多种算法,可以随意替换,但子类不可以重新定义算法步骤。
模板:一种算法,子类去继承并丰富,可以重新定义算法的某些步骤。
三、总结
把复杂的知识变简单,只是看着是没办法变简单的,只有罗列,比较,最后再总结,才会发现其实没什么难的啊,想让它多简单就会简单,中间只差一个“做”字!
时间: 2024-10-10 06:31:48