2010-06-19 31 views
2

我想使用依賴注入(Unity),此刻我正在考慮如何設置我的項目(這是我正在開發的一個奇妙的演示)。依賴注入 - 完全解耦組件的最佳實踐?

所以,完全脫鉤的所有組件,並沒有更多的裝配依賴,是建議創建的組件「.Contracts」或類似的東西,並把所有的接口和共享數據結構呢?

你會認爲這是最好的做法還是我在錯誤的軌道在這裏?

我想要什麼來完成:

完全可測性,我想所有組件大幅解耦地,注入的一切,沒有組件都不會直接談具體的實現了。

回答

3

第一,可能是最重要的一步就是對接口進行編程,而不是具體的實現。

這樣做時,應用程序將被鬆散耦合DI是否被使用。

+0

是的,但你所有的接口放在一起在一個單一的組裝/庫/項目? – StormianRootSolver 2010-06-19 16:07:04

+0

這取決於。如果組件在其他項目中被明確使用,是的。如果不是,在同一個項目中,還沒有一個明智的結構。 – Finglas 2010-06-19 16:12:13

+0

謝謝。我現在做出了我的決定。我會按照你的建議,並創建一個.Contracts項目,我把所有由多個程序集使用的接口。 :-) – StormianRootSolver 2010-06-19 16:23:23

1

我不會在其他組件分離的接口。如果您必須與某個屬於您的域名的內容進行互動,爲什麼要將其分開?接口的例子是存儲庫,電子郵件發件人等。假設你有一個模型組件,你有你的域對象。這個程序集公開了接口和實現,顯然是爲了實現它們而引用Model。

+0

+1爲您的答案! :-)但是,根據陌生人的工作情況,你怎麼去上課?我的意思是,假設你有一個服務組件,它依賴於與打印系統相同的配置文件訪問器類?在這種情況下,不會引入太多的參考文獻嗎? – StormianRootSolver 2010-06-19 19:50:03