3
我與一些舊代碼工作,有這樣的現有的接口:C#接口過於死板
public interface IProcess
{
IDTO Process(IDTO request);
}
沒有再與實現接口的一個巨大的switch語句返回對象(其中17人)的工廠。創建的對象,然後調用過程,如:
return xProcess.Process(requestDTO);
我的問題是,我現在需要改變其中的幾個像第二個參數來傳遞:
xProcess.Process(requestDTO, Id);
我在尋找一個優雅實現這一目標的方法。
我試圖使得界面的抽象的類,如:
public abstract class IProcess
{
public virtual IDTO Process(IDTO request)
{
return null;
}
public virtual IDTO Process(IDTO request, int Id)
{
return null;
}
}
這使我覆蓋在創建的類的加工方法,但是我有的iProcess由另一個接口,這是現在繼承的一個問題明顯破碎。
傳統平臺非常龐大,測試覆蓋率並不是很高,所以我正在尋找一個不錯的優雅解決方案,對代碼庫的其餘部分影響最小。也許,我忽略了一種模式?
任何人都可以幫忙嗎? (例子將是巨大的)
感謝
大衛
謝謝。我確實玩過這個主意,但工廠返回IProcess,並且出現錯誤,提示我無法將IProcess轉換爲IProcess2。我錯過了什麼嗎? – davy
是的,工廠也需要改變:) –
@Justin - 絕對:),剛剛添加評論說這就是我需要做的。非常好,非常感謝。 – davy