Cod*_*ody 8 oop design-patterns strategy-pattern template-method-pattern
这可能是一个新手问题,因为我是设计模式的新手,但我正在查看模板方法和策略DP,它们看起来非常相似.我可以阅读定义,检查UML并查看代码示例,但对我而言,似乎策略模式只是使用模板方法模式,但您恰好将其传递给对象(即组合).
就此而言,模板方法似乎只是基本的OO继承.
我错过了他们差异的一些关键方面吗?我错过了一些关于模板方法的东西,它使它更像是基本的继承吗?
注意:有一个上一篇文章(672083),但更多的是关于什么时候使用它,哪种帮助我得到它更多但我希望有效的我对模式本身的想法.
wor*_*ad3 10
它基本上都归结为语义.策略模式允许您将特定的算法/过程(策略)传递给另一个对象,并将使用它.模板方法允许您覆盖算法的特定方面,同时仍然保持它的某些方面相同(保持顺序相同,并且总是在开始和结束处完成的事情,例如......'模板')而继承是一种在数据模型中建模"IS-A"关系的方法.
当然,模板方法最容易使用继承来实现(尽管你可以很容易地使用组合,特别是一旦你有了仿函数),并且策略模式通常也是模板方法,但是语法类似,其含义却大不相同.