-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.
}
}
第1步:總結什麼班不同的是使用相同的接口
第2步:與包裝類常見的邏輯工作
這可能是一個有趣的問題,但現在它是完全不清楚的,無法回答。 – Heinzi 2013-04-24 13:17:52
我的第一個直覺是告訴你爲請求和響應對象('public TResponse Process(TRequest request)')使用泛型。但我們需要更多的繼續。 –
JosephHirn
2013-04-24 13:22:55