我正在編寫一個Java組件,它將對一些大數據執行相當繁重的工作。因此,顯然,效率(速度和記憶)是最重要的。我也剛開始第一次使用IoC和依賴注入框架(比如Spring AOP,Google Guice等),並且想知道他們是否可以幫我解決問題。Java Collections API上的依賴注入
我希望做的是這樣的(全部在我的代碼):
List<MyData> oMyData = new List<MyData>();
然後,在一些XML配置文件(或不過框架配置注射),我會規定每個在創建List的實例時,要注入一個ArrayList<MyData>
作爲它的實現。通過這種方式,如果我決定使用不同的實現,或者甚至是比本地應用更適合我的應用的東西,那麼它比Java Collections提供的任何東西都更有效,所以我只需要更改被注入的類。沒有其他修改是必要的,我的代碼將更有效地運行。
這是一個可能的解決方案,還是這只是大夢?再說一遍,因爲我對IoC框架是如此的陌生,很難分辨注入哪些對象會起作用,在注入過程中是否可以保留泛型以及其他各種複雜的細節,我似乎無法在其他任何地方找到答案。
在此先感謝您的任何見解或建議!
然後從這裏開始,您可以使用IOC在運行時選擇不同的工廠。 AFAIK,IOC是關於注入類的實例,而不是類本身,所以函數不會是靜態的。 – Chris
@Chris不同工廠的方法當然是有效的,但可能不適合像這樣的基本任務。 –
謝謝肖恩!我確實有幾個保留。首先,雖然我還是一個相當新的企業開發人員,但它一次又一次地被我打敗,因爲工廠方法很難進行測試,因此很難進行測試。注射是新的途徑。你能否迅速解釋爲什麼你認爲國際奧委會是一個偉大的理念,但不是爲了這個場景?在這一天結束時,我想要最好的/最優雅的解決方案,所以我沒有任何偏好(工廠或注入),我只是好奇哪些場景需要工廠與注入解決方案。謝謝! – IAmYourFaja