71muke 71muke

IoC控制反转介绍

在正式学习Spring框架前,我们需要先了解IoC控制反转,那么什么是控制反转呢?

一、IoC控制反转介绍

IoC(Inversion of Control)控制反转是一种编程思想,常用于降低代码之间的耦合度。它的核心思想是将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转的本质是控制权的转移,即从程序代码本身转移到了外部容器


加入loC容器将对象统一管理,让对象关联变为弱耦合,关系如下图表示:

理解如下:学生想找java课程学习,传统方式是学生直接到71muke上面去找,多了IoC容器之后,是由村长帮忙匹配需求找到最符合学生学习的课程直接返回学习。

image.png


IoC控制反转的实现策略有多种,其中最常见的是依赖注入(Dependency Injection,简称DI)。依赖注入是IoC的一种实现方式,它的主要思想是对象只提供普通的方法让容器去决定依赖关系,容器全权负责组件的装配。依赖注入通过将依赖关系从代码中分离出来,降低了类之间的耦合度,使得代码更加灵活和可维护


另一种常见的实现策略是依赖查找(Dependency Lookup)。在依赖查找中,受控对象通过容器的API来查找自己所依赖的资源和协作对象。这种方式虽然降低了对象间的依赖,但是同时也使用到了容器的API,造成无法在容器外使用和测试对象。


IoC控制反转是一种有效的降低代码耦合度的方法,通过将控制权反转给容器,使得代码更加灵活和可维护。其实现策略有多种,其中依赖注入是最常见的方式。

IoC控制反转,是一种设计理念。由代理人来创建管理对象,消费者通过代理人来获取对象。目的是:降低对象间直接耦合

(消费者和代理人的理解:你想在71muke上买课学习,你就是消费者,然后问村长想找JAVA框架方面的课程,有没有推荐,那么村长就是代理人。你把决定权给到村长帮你做决定)



二、DI依赖注入

依赖注入(Dependency Injection,简称DI)是一种设计模式,它的核心思想是将对象之间的依赖关系从代码中分离出来,通过外部容器来管理这些依赖关系。依赖注入的目的是降低代码之间的耦合度,使得代码更加灵活和可维护


依赖注入的实现方式有多种,常见的有构造器注入、设值注入和接口注入等。其中,构造器注入和设值注入是最常见的两种方式。构造器注入是通过在构造器中传入依赖对象来实现的,而设值注入则是通过setter方法或者配置文件来注入依赖对象。


DI的特点总结:

  • IoC是设计理念,是现代程序设计遵循的标准,是宏观目标

  • Dl(DependencyInjection)是具体技术实现,是微观实现

  • DI在Java中利用反射技术实现对象注入(Injection)


留言

发布留言

需要购买本课才能留言哦~

{{ item.createtime | dateStr }}