我正在编写一个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