[英]How should using statement look when using Dependency Injection for DBContext?
[英]How to even know what to look for when refactoring for dependency injection
今天只需閱讀幾篇有關DI的文章,我就有責任重構一個項目以使用AutoFac :)太好了!
例如,這是我的代碼中一個類的快照:
public class LoginManager : ManagerBase
{
// stuff
public LoginModel LoadLoginPageData()
{
LoginModel model = new LoginModel();
model.blahblah = "whateverrr"
}
}
那么如何去做呢? 從我的學習中,我看到了一個new LoginModel()
語句,因此我將為其創建一個接口,並將其作為參數傳遞給此類的構造函數?
顯然,重構實際上取決於您當前針對應用程序的目標。 在這種情況下,您的方法確實依賴於LoginModel,因為您的方法需要一個Login模型的實例才能起作用。 (這就是定義您的依賴關系的原因)
您可以通過制作接口或抽象類來抽象模型,然后將其注入LoginManger的構造函數中,但是或多或少與松散耦合是一致的。
這是一個重要的區別。 您不需要松耦合即可實現依賴注入。 依賴注入應該解決在運行時或編譯期間換出對象依賴的問題。 因此有助於松散耦合。
在您的特定示例中,您無需將LoginModel注入類的構造函數中,以免您計划在整個類中使用同一模型實例。 如果您仍在嘗試依賴項注入,只要其余LoginManger不需要了解該LoginModel實例,就可以擺脫方法注入。 同樣,您可以注入特定的LoginModel實例而無需創建模型的抽象版本-除非您計划將其替換為相似但變化的LoginModel。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.