gpt4 book ai didi

language-agnostic - 何时使用模板方法 Vs。战略?

转载 作者:行者123 更新时间:2023-12-03 10:06:28 26 4
gpt4 key购买 nike

模板方法模式和策略模式做的事情大致相同。我了解它们之间的基本区别(模板方法是基于继承的,策略是基于组合的),但是对于何时选择一个而不是另一个有什么体面的指导方针?似乎他们做的事情基本相同。

最佳答案

策略允许在多个地方使用可重用的算法。如果您有一个算法可以由您的消费者提供并且可以在多个地方使用,那么这是 Strategy 的好地方(排序算法、谓词、比较器......就是很好的例子)。

模板方法专门针对您希望人们能够从您的类继承并希望他们能够以受控方式覆盖您的实现的情况(基本上防止他们替换所有管道并为他们提供特定的扩展点而无需因为他们没有调用基本方法或在错误的时间调用它而冒着问题的风险)。

它们可以是相似的,并且它们可以用于相同的目的,具体取决于您实际在做什么。
与所有设计模式一样,很难回答这样的问题,因为没有真正确定的答案。实际上更容易在上下文中决定......

关于language-agnostic - 何时使用模板方法 Vs。战略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/672083/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com