2014-03-04 89 views
0

我有一個實現各個接口的典型庫:MVC庫 - 依賴注入助手

public class AccountRepository : IAccountRepository, IDisposable 
{ 
.... 

同時這個倉庫裏我使用的是靜態輔助類。什麼是靜態類的正確方法?由於他們不能實現接口?

我想讓我的存儲庫解耦(DI模式),但我不知道如何將其應用於我的存儲庫使用的靜態類。

謝謝

回答

2

爲什麼你的存儲庫類中的靜態類存在問題。存儲庫類通常用於將數據訪問代碼與應用程序的其餘部分分離。這基本上允許您通過爲新的數據訪問提供程序重新實現具體的存儲庫類來替代數據訪問提供程序,而無需付出太多努力。

您可以使用DI將您的存儲庫類注入到控制器或服務類中。

如果你真的想讓你的頭在DI附近,我會推薦閱讀Mark Seeman的「.Net中的依賴注入」。

+0

我明白你的意思,但是如果我的存儲庫正在使用未通過構造函數傳遞給它的其他類,它是否已解耦?我怎樣才能嘲笑我的接口提供給它,然後存儲庫正在調用其他靜態類? THanks – user2779312

+0

如果您試圖解耦存儲庫中的依賴關係的原因是爲了更容易使用TDD進行測試,需要考慮的一件事是,當您測試存儲庫時,您正在跨系統邊界進行測試(即,您正在進行通信與數據庫,XML文件等),所以你的測試不再是真正的單元測試。它們是集成測試,因此您不應該擔心孤立地測試該方法中的邏輯。即使您在某些時候提取了存儲庫中的所有依賴關係,也需要跨越系統邊界並訪問數據庫。 – Andrew

+0

謝謝!我明白。 – user2779312