.NET-控制反转和依赖注入的理解

先了解设计原则中的依赖倒置原则

指程序要依赖于抽象接口,不要依赖于具体实现,最大程度减少程序耦合性。


一、IOC是什么?

  • Ioc-Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。
  • Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
  • 谁控制谁,控制什么?: 1.当然是Ioc容器控制了对象;2.控制了什么?那就是控制了外部资源获取(不只是对象包括比如外部文件)。
  • 为何是反转,哪些方面反转了:有反转就有正转,传统应用程序是由我们自己在对象中主动控制区直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接收依赖对象,所以是反转。

二、IOC能做什么?

  • Ioc不是一种技术而是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。

三、IOC和DI

  • DI-Dependency Injection,即“依赖注入”:组件之间的依赖关系由容器在运行期间决定,形象的说即由容器动态的将某个依赖关系注入到组件之中。
  • IOC和DI的关系?:其实它们是同一个概念的不同角度的描述,相对Ioc而言,依赖注入明确描述了被注入对象以来Ioc容器配置依赖对象。

IOC和DI理解图鉴:
在这里插入图片描述


所以控制反转Ioc(Inversion of Control)是说创建对象的控制权进行转移,以前创建对象的主动权和创建时机都是自己把握的,而现在这种权利转移到第三方,比如转移交给了Ioc容器,它就是一个专门来创建对象的工厂,你要什么对象,它就给你什么对象,有了Ioc容器,依赖关系就变了,原先的依赖关系就没了,它们都依赖Ioc容器了,通过Ioc容器来建立它们之间的关系。

猜你喜欢

转载自blog.csdn.net/MrLsss/article/details/106572315