如果已經討論過這個問題,我很抱歉,但是我沒有發現我想要的東西。我面臨的問題更多的是關於模式和設計選擇,而不是.NET本身。我只是想徵求你的建議,知道從哪裏開始我的重構。如何處理.NET中的構造函數over-injection
今天我在我的實際應用程序中打開了其中一個類,發現它有13個依賴項由構造函數注入!實際上每個開發者都會在他寫的方法中添加它所需要的依賴。
我對DI的理解的一點是,當我們通過構造函數注入一個依賴項時,這意味着它是一個強制性依賴項,應該用在類的所有方法中。如果我們只需要一個給定類的方法就需要一個特定的依賴關係,那對您意味着什麼?
- 給定的類確實太多了?我應該考慮創建一個只需要依賴的新類型?
- 我應該注入財產?但是在那個特定的方法中,依賴是強制性的,所以我不認爲這是一個好的選擇。
- 我應該注射的方法?
有什麼難的是找到正確的平衡。在實際情況中,有時候不可能用乾淨的方式封裝bahaviour。
我正在考慮創建類似服務聚合器的東西,以便在其中一個相關的依賴關係後面生效,但是希望如果您有其他建議。提前致謝。
相關:http://stackoverflow.com/questions/2420193/dependency-injection-constructor-madness – 2011-01-05 11:34:07
這其實不是。 NET的問題,這是非常不相關的語言! – markus 2012-12-12 11:34:48