好吧,我只是有一个问题。
我需要一些专家建议;我有代码,供多个客户使用。所以这是一件好事,没有来自不同客户端的重写逻辑,但是不同客户端的请求和响应对象是不同的;这不是一件好事。导致我重写了一些逻辑。
有没有办法可以缓解这种情况?我怎样才能满足不同的客户/服务?
步骤 1. 用相同的接口包装类中的不同之处
步骤 2. 使通用逻辑与包装类一起工作
将您的共享代码放在基类中,并将所有特定代码放在继承类中。
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.
}
}