gpt4 book ai didi

design-patterns - 是否所有界面组合都被视为策略模式

转载 作者:行者123 更新时间:2023-12-04 07:35:33 29 4
gpt4 key购买 nike

使用策略模式,我们可以使用接口(interface)解耦行为。
行为被移入可以有多个实现的接口(interface)。
客户端可以与接口(interface)有关系,并且可以在运行时引用它的任何实现。
在所有解释中,它都被提到作为解决与继承相关的问题的解决方案,其中继承层次结构中不同分支中的两个类需要相同的行为。
我认为即使不存在继承层次结构,我们也可以使用相同的方法将行为与类分离。具有对接口(interface)的引用的单个类可以基于它在运行时引用的实现来实现多种行为。
我们可以将这样的用例称为策略模式的实现吗?
如果是这样,是否所有与接口(interface)有关系都被视为策略模式?

最佳答案

In all explanations, it is mentioned as a solution to solve issues related to inheritance, where two classes in different branches in inheritance hierarchy need same behavior.


我刚刚阅读了 GoF 书中对策略的大部分描述,我看不出它提到了这一方面。也就是说,这似乎是一个足够相关的问题。
如果将 Strategy 模式简化为其退化形式,您将得到 Context调用其 Strategy 上的方法:
public Foo ContextInterface()
{
return strategy.AlgorithmInterface();
}
只要您有多个(即不止一个) Strategy实现,您可以争辩说它符合模式描述。
作为一般观察,GoF 中的某些模式比其他模式更具体。策略模式总是让我印象深刻,因为它太笼统以至于有空洞的危险。它几乎是多态性的另一个名称......

关于design-patterns - 是否所有界面组合都被视为策略模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67761543/

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