我认为自己是一个有经验的程序员,并且了解依赖注入的基本概念.另一方面,我的大部分经验是写相对较低级别的单人数字处理代码.我没有任何从事大型企业项目的经验.
鉴于这种背景,我无法为我的生活围绕着为什么任何人需要一个框架来进行依赖注入.有人可以简要介绍一下这样一个框架如何工作,而不需要进行大量的细节,并且解释一下如何让生活更容易,而不仅仅是滚动自己的?
编辑:我在这里得到了一些很好的答案.我正确地说,DI框架基本上为您提供了一种方便的方法来创建全局可访问的工厂,以便在对象请求时创建/返回依赖关系的实例?如果是这样,我一直在我的代码中以非常特殊的方式做这样的事情,但从来没有想过要使用任何形式的/重量级的框架.
DI是关于在类之间去耦依赖关系.
使用DI,您的类不再具有实现类的引用.工厂模式接近DI,但它是不同的,因为工厂类是自己是不必要的依赖(例如会损害单元测试).
DI也不一定是全球或应用范围广泛的事情;可以为同一应用程序和相同的类配置不同的依赖关系模式.甚至可以有运行时依赖. DI甚至可以确定对象需要生存的生命周期或范围(请求范围,会话范围等).
如果您看到像Google’s Guice这样的轻量级DI实现,它也不是重量或侵入性的.它不是什么都不称为新的“新”.