-1

好吧,我只是有一个问题。

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

有没有办法可以缓解这种情况?我怎样才能满足不同的客户/服务?

4

2 回答 2

1

步骤 1. 用相同的接口包装类中的不同之处

步骤 2. 使通用逻辑与包装类一起工作

于 2013-04-24T13:17:54.570 回答
0

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

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.
    }
}
于 2013-04-24T13:25:50.360 回答