模板方法模式与策略模式的区别

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。

策略模式:定义一个算法家族,并让这些算法可以互换。正因为每一个算法都被封装起来了,所以客户可以轻易地使用不同的算法。

区别:

模板方法模式意图与策略模式意图不一样:模板方法模式工作是定义一个算法的大纲,而由其子类定义其中某些步骤的内容。这么一来,其在算法中的个别步骤可以有不同的实现细节,但是算法的结构依然维持不变。不过策略模式就不一样了。似乎必须放弃对算法的控制。模板方法模式对算法有更多的控制权,而且不会重复代码。

策略模式:因为使用了组合,所以更加有弹性。依赖程度没有模板方法模式那么深。不依赖任何对象,整个算法自己搞定。


转载于:https://my.oschina.net/u/1254855/blog/159246

你可能感兴趣的:(模板方法模式与策略模式的区别)