依赖注入(DI)及其三个类

简介: 【8月更文挑战第24天】

简介
依赖注入 (DI) 是一种软件设计模式,它通过将依赖关系注入到对象中,而不是在对象内部创建或查找它们,来解耦对象。DI 有助于提高代码的可测试性、可维护性和可扩展性。本文将深入探讨 DI 及其三个主要类:

构造函数注入
构造函数注入是最常见的 DI 类型。它涉及在对象创建期间通过构造函数将依赖项注入到对象中。例如:

public class MyClass {
    private MyDependency dependency;

    public MyClass(MyDependency dependency) {
        this.dependency = dependency;
    }
}

在上面的示例中,MyClass 依赖于 MyDependency。通过构造函数注入,MyDependencyMyClass 创建时通过构造函数注入到 MyClass 中。

设值注入
设值注入涉及在对象创建后通过公共 setter 方法将依赖项注入到对象中。例如:

public class MyClass {
    private MyDependency dependency;

    public void setDependency(MyDependency dependency) {
        this.dependency = dependency;
    }
}

在上面的示例中,MyClass 依赖于 MyDependency。通过设值注入,MyDependencyMyClass 创建后通过 setDependency() 方法注入到 MyClass 中。

接口注入
接口注入涉及将接口作为依赖项注入到对象中,而不是具体实现。例如:

public interface MyDependency {
    void doSomething();
}

public class MyClass {
    private MyDependency dependency;

    public MyClass(MyDependency dependency) {
        this.dependency = dependency;
    }
}

在上面的示例中,MyClass 依赖于 MyDependency 接口。通过接口注入,MyDependency 的具体实现(例如 MyDependencyImpl)在 MyClass 创建时通过构造函数注入到 MyClass 中。

DI 框架
DI 框架是使 DI 更容易实现的库或工具。DI 框架负责创建和管理对象及其依赖关系。一些流行的 DI 框架包括:

  • Spring Framework
  • Guice
  • Dagger

优点
DI 提供了以下优点:

  • 可测试性:通过将依赖项注入到对象中,可以更轻松地模拟和测试对象。
  • 可维护性:DI 允许轻松更改对象的依赖关系,从而提高代码的可维护性。
  • 可扩展性:DI 使得向代码中添加新功能或集成新服务变得更加容易,从而提高了可扩展性。

结论
依赖注入 (DI) 是一种强大的设计模式,它通过将依赖关系注入到对象中,而不是在对象内部创建或查找它们,来解耦对象。它有三种主要类型:构造函数注入、设值注入和接口注入。DI 框架使 DI 更易于实现,并提供了可测试性、可维护性和可扩展性等优点。

目录
相关文章
|
3月前
|
存储 Java 应用服务中间件
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
|
10月前
|
XML Java 数据格式
Spring框架入门:IoC与DI
【5月更文挑战第15天】本文介绍了Spring框架的核心特性——IoC(控制反转)和DI(依赖注入)。IoC通过将对象的创建和依赖关系管理交给容器,实现解耦。DI作为IoC的实现方式,允许外部注入依赖对象。文章讨论了过度依赖容器、配置复杂度等常见问题,并提出通过合理划分配置、使用注解简化管理等解决策略。同时,提醒开发者注意过度依赖注入和循环依赖,建议适度使用构造器注入和避免循环引用。通过代码示例展示了注解实现DI和配置类的使用。掌握IoC和DI能提升应用的灵活性和可维护性,实践中的反思和优化至关重要。
590 4
|
10月前
|
容器
02_IOC控制反转 DI依赖注入
02_IOC控制反转 DI依赖注入
59 0
|
10月前
|
容器
IOC 控制反转和DI依赖注入
IOC 控制反转和DI依赖注入
|
10月前
|
容器
IOC&DI
IOC&DI
46 0
|
设计模式 Java 容器
DI依赖注入篇
依赖注入(Dependency Injection,DI)是一种设计模式,它用于解耦组件之间的依赖关系。在DI中,组件不再负责自己的依赖对象的创建和管理,而是由外部容器负责将依赖对象注入到组件中。
213 1
|
XML 设计模式 前端开发
|
容器
DI——依赖注入
DI——依赖注入
172 0
IOC控制反转 + DI依赖注入
一种思想,两种实现方式 IOC (Inversion of Control):控制反转,是一种概念和思想,指由Spring容器完成对象创建和依赖注入 核心业务:(a)对象的创建 (b)依赖的注入 2种实现方式 基于xml实现IOC 基于注解实现IOC 基于xml的IOC在前3篇Spring博客中简单探讨过了,后面将探讨基于注解的IOC
|
XML 存储 Java