gpt4 book ai didi

c# - 糟糕设计的空抽象类/接口(interface)标志?

转载 作者:太空狗 更新时间:2023-10-30 01:19:56 24 4
gpt4 key购买 nike

我有以下类结构:

enter image description here

事实是每个请求都不会共享任何内容,因为当我处理请求时我会执行 typeof/cast。具有空根类的原因是在编译时限制您可以将哪些类传递给处理请求的方法:

void ProcessRequest(Request request)

这个设计有什么缺陷吗?有一个空的根类/接口(interface)对我来说感觉很奇怪。

最佳答案

在您澄清评论的帮助下,我会做这样的事情。在这种情况下,我认为不需要空类。有时您会使用继承以“面向对象方式”做事,简单的方法重载应该可以完成您需要的事情。在我的示例中,泛型实际上可能过火了,如果您只是在类型上使用 if/else,您可以将 void Process(Request request) 拆分为多个方法。

public class RequestA
{
}

public class RequestB
{
}

public class RequestC
{
}

public class RequestProcesser :
IProcessRequest<RequestA>,
IProcessRequest<RequestB>,
IProcessRequest<RequestC>
{
public void Process<RequestA>(RequestA request)
{
}

public void Process<RequestB>(RequestB request)
{
}

public void Process<RequestC>(RequestC request)
{
}
}

public interface IProcessRequest<TRequest>
{
void Process<TRequest>(TRequest request);
}

关于c# - 糟糕设计的空抽象类/接口(interface)标志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21158403/

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