gpt4 book ai didi

c# - 在策略模式中,处理共享行为的最佳方式是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 21:35:49 25 4
gpt4 key购买 nike

我已经实现了策略模式 - 是否有一种聪明的方法来处理下面 function2() 和 function1() 的重复?
IBehaviour 接口(interface)具有不共享功能的其他成员。

class Behaviour1: IBehaviour
{
public void DoSomething()
{
Function1();
}
//other functions of IBehaviour
}

class Behaviour2 : IBehaviour
{

public void DoSomething()
{
Function2();
Function1();
}
//other functions of IBehaviour
}

class Behaviour3 : IBehaviour
{
public void DoSomething()
{
Function2();
}
//other functions of IBehaviour
}

我已经有一个类来处理这种行为。然后我意识到不同的情况需要不同的行为,所以在这个主类中,我在运行时创建了一个 Behavior 对象。我不愿意为 Function1 和 Function2 创建另一个类,所以我想知道我是否遗漏了什么。

最佳答案

我想到了两个简单的选项之一:

  1. 制作Behavior3继承自 Behavior2 .如果您可以建立明确的“IS A”关系,我只会推荐这种方法,或者这种设计方法以后真的会给您带来问题,如果情况发生变化 Behavior2Behavior3 有关的作品.

  2. 移动Function2()进入辅助类 Behavior2Behavior3可以独立使用。

关于c# - 在策略模式中,处理共享行为的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21956731/

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