【发布时间】:2013-01-07 06:42:17
【问题描述】:
我已经阅读了几篇文章,并就 DI 与几位专业人士进行了交谈。我不明白的是如何通过 DI 解耦对象。以下文章还描述了一个场景,但我不明白 Spring 如何帮助解耦 PayrollApplication?解耦是通过多态性而不是 DI 完成的。 DI 定义有其他用途...
http://www.developer.com/java/dependency-injection-in-existing-java-code.html
提示和参考都可以。谢谢
【问题讨论】:
-
我的论点是我没有看到 DI 如何负责解耦。以前需要的对象现在也需要!
-
解耦是在设计中进行的,DI与此无关。您可以在引用具体实现的对象上使用 DI,并且根本不会有任何解耦。当您依赖抽象类或接口时,您可以解耦不同的 bean,这允许您轻松切换不同的 impl。 DI 容器只是让您免于查找每个 bean 的不同实例并将它们注入所需的 bean 所需的所有麻烦。
-
您引用的文章是解释依赖注入的一个非常糟糕的例子。您看不到依赖注入和服务定位之间的区别,也没有解释控制反转和依赖反转原则。
标签: java spring dependency-injection coding-style