我是D.I.的粉絲。
我目前正在開發一個使用D.I.的非那麼小的項目。無處不在
(經典漂亮D.I. 手工)。Java:依賴注入外部構造對象?
從我的角度來看有以下優點:
- 它當你習慣了直觀,
- 不影響可讀性以消極的方式 (其實,它變得更好),
- 但最重要的是:如果我想測試部分或整個項目 與一些接口的不同實現,我可以通過更改 幾個字符,而不是做複雜的重構/重命名或其他解決方法。
但是,可悲的是,我不明白,怎麼D.I.可以用優雅的方式與國外創建的對象(沒有一些框架,請記住, 我手工做D.I.)。
D.I.手工表示:你傳遞一些東西給C-tor。 沒有全球工廠或類似的,上帝保佑!例如,JAXB自己創建對象。 無法告訴JAXBContext:「請使用以下參數創建我的 對象」。 JAXB只接受無參數的c-tors。
任何想法?
+1我會去任何一個建議。 @ivan如果你仍然不習慣可以調用它的代碼行,請將它們包裝起來,並將代碼移到其他地方。它的限制,你必須在某個時候處理它。我也不知道Java是否允許,但在.net中,您可以通過反射調用已經實例化的對象的構造函數。 – eglasius 2009-04-18 10:00:05