好的,所以我想解耦我的代碼。我不想在所有地方使用單例,而是想用接口的依賴注入。到現在爲止還挺好。我應該使所有類型的通用接口的類,我依靠嗎?
現在,我有這個大的網絡類,使用其他網絡類作爲參數或返回類型的方法。例如:
public class Network
{
void OnServerError(NetworkConnection conection, int errorCode);
}
public class NetworkConnection
{
public NetworkError lastError { get; }
}
public class NetworkError
{
public string Error { get; private set; }
}
- 甚至是否有意義創建網絡類的接口?
- 如果是這樣,我需要使所有類型通用?對於具有公共方法的類的類型,我是否也需要爲它創建一個接口?基本上不斷深入課堂,直到一切都是接口或泛型?
- 我想爲這個類創建一個接口的原因之一是,我可能會在未來切換到不同的網絡庫,並且我不想在任何地方重構任何東西,儘管我的初始接口將具有相同的簽名幾乎是我現有的網絡課程,所以我不得不在將來重構它。我錯過了什麼?
這裏真正的問題是,你的Network類是否被注入到其他類中......如果是這樣,那麼它可能是有用的。正如Glenn的回答指出的那樣:DI不需要接口,它們只是有用的。真正的答案完全取決於你,但這取決於你的要求。你打算進行構造函數還是屬性注入?你使用什麼容器? – Clint