可能重复: 理解对DI框架的需求
我读过几篇关于DI的文章,并与几位专业人士交谈过。我不明白的是,如何通过DI来解耦对象。下面的文章也描述了一个场景,但我不明白Spring如何帮助解耦PayrollApplication?解耦是用多态性而不是DI来完成的。绝对有其他用途..。
http://www.developer.com/java/dependency-injection-in-existing-java-code.html
暗示和拒绝就行了。谢谢
发布于 2013-01-23 17:57:37
脱钩不是什么都没有的概念。在本文中,只使用多态(“Design2”)在一定程度上将对象解耦,但是PayrollApplication类在编译PayrollApplication时仍然必须了解雇员实现。
Employee实现是PayrollApplication的依赖项,通过依赖注入,您可以实现更高级别的解耦:您可以编译PayrollApplication,以便它只引用Employee接口,并且只在稍后提供雇员实现(可能由另一个团队/组织编写)。
还可以查看有关依赖项注入的维基百科:
依赖注入模式的主要目的是允许在运行时(或通过配置文件)选择给定依赖接口的多个实现,而不是在编译时。该模式对于在测试时提供复杂组件的存根测试实现特别有用,但通常用于定位插件组件或定位和初始化软件服务。
发布于 2013-01-23 17:28:06
依赖注入将对象解耦,因为不是直接实例化具体的类,而是Spring为您做的。使用DI的替代方法是,您通常会创建对接口的引用,但仍然必须直接实例化对象。您的代码中仍然引用了concreate类。
编辑:忘记提到您可以使用Factory模式将实现从代码中删除,但是接下来您只需将其移到Factory中。春天就像一个巨大的,通用的工厂所有的豆类。
https://stackoverflow.com/questions/14485594
复制相似问题