依赖注入(injection)是一种对任何编程语言都有效的概念。依赖注入背后的一般概念称为控制反转。根据这个概念,类不应该静态配置其依赖项,而应该从外部配置。
如果Java类使用此类的实例,则Java类依赖于另一个类。我们称之为_class依赖。例如,访问记录器服务的类依赖于此服务类。
理想情况下,Java类应尽可能独立于其他Java类。这增加了重用这些类的可能性,并且能够独立于其他类测试它们。
如果Java类通过new运算符创建另一个类的实例,则不能独立于此类使用(和测试),这称为硬依赖。以下示例显示了一个没有硬依赖关系的类。
package com.vogella.tasks.ui.parts;
import java.util.logging.Logger;
public class MyClass { private Logger logger; public MyClass(Logger logger) { this.logger = logger; // write an info log message logger.info("This is a log message.") } }
| 请注意,这个类只是一个普通的Java类,没有什么特别之处,除了避免直接创建对象。 |
框架类(通常称为依赖容器)可以分析此类的依赖关系。通过此分析,它可以创建类的实例,并通过Java反射将对象注入定义的依赖项中。
这样,Java类没有硬依赖关系,这意味着它不依赖于某个类的实例。这允许您单独测试您的类,例如通过使用模拟对象。
模拟对象(模拟)是与真实对象相似的对象。但这些嘲笑没有编程; 它们被配置为以某种预定义的方式运行。模拟是一个英语单词,意思是模仿或模仿。
如果使用依赖注入,则可以单独测试Java类。
本文介绍了依赖注入(DI)的概念及其在Java编程中的应用。依赖注入是一种编程模式,旨在提高代码的灵活性和可测试性,通过让外部组件管理类之间的依赖关系,避免了硬编码依赖。文章还解释了控制反转(IoC)的概念,即类不应负责创建自己的依赖项,而是由框架或容器来处理。此外,文中提供了依赖注入的示例代码,并讨论了如何使用依赖容器进行依赖分析和对象创建。
7330

被折叠的 条评论
为什么被折叠?



