C# 如何避免编写重复代码

C# 如何避免编写重复代码,c#,.net-4.0,C#,.net 4.0,好的,我有个问题 我需要一些专家的建议;我有多个客户端使用的代码。因此,一件好事是,没有重写来自不同客户端的逻辑,但是跨不同客户端的请求和响应对象是不同的;这不是一件好事,让我重写了一些逻辑 有什么办法可以减轻我的痛苦吗?如何满足不同客户/服务的需求?步骤1。使用相同接口包装类中的不同内容 第二步。使公共逻辑与包装类一起工作将共享代码放在基类中,并将所有特定代码放在继承类中 public class MySharedCode { public void MyShareMethodA()

好的,我有个问题

我需要一些专家的建议;我有多个客户端使用的代码。因此,一件好事是,没有重写来自不同客户端的逻辑,但是跨不同客户端的请求和响应对象是不同的;这不是一件好事,让我重写了一些逻辑


有什么办法可以减轻我的痛苦吗?如何满足不同客户/服务的需求?

步骤1。使用相同接口包装类中的不同内容


第二步。使公共逻辑与包装类一起工作

将共享代码放在基类中,并将所有特定代码放在继承类中

public class MySharedCode
{
    public void MyShareMethodA()
    {
        // Shared code.
    }

    public void MyShareMethodB()
    {
        // Shared code.
    }
}

public class SpecificCodeForASpecificClient:MySharedCode
{
    public void SendRequest(MySpecificRequestA request)
    {
        // Specific code.
    }

    public MySpecificResponse ReadRepsonse()
    {
        // Specific code.
    }
}
这就是你要找的吗?或者发送/接收代码是否与所有客户端相同?在这种情况下,您可以尝试使用泛型:

public class MySharedCode<TRequest, TResponse>
    where: TResponse: new()
{
    public void MyShareMethodA()
    {
        // Shared code.
    }

    public void MyShareMethodB()
    {
        // Shared code.
    }

    public void SendRequest(TRequest request)
    {
        // Shared code with specific request.
    }

    public TResponse ReadRepsonse()
    {
        // Shared code with specific response.
    }
}
公共类MySharedCode
其中:t响应:新()
{
公共无效MyShareMethodA()
{
//共享代码。
}
public void MyShareMethodB()
{
//共享代码。
}
公共无效发送请求(TRequest请求)
{
//具有特定请求的共享代码。
}
公共响应ReadRepsonse()
{
//具有特定响应的共享代码。
}
}

这可能是一个有趣的问题,但就目前而言,它完全不清楚,无法回答。我的第一反应是告诉您对请求和响应对象使用泛型(
公共响应过程(TRequest请求)
)。但我们还需要一点时间。