加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

依赖注入和控制反转

发布时间:2020-12-14 05:13:01 所属栏目:百科 来源:网络整理
导读:前言 ? ? 还是从上次机房合作验收说起,其中一个特别厉害的师姐提到了依赖注入和控制反转,刚刚听到这个的时候,感觉很熟悉,就是不知道在哪里看到过,想起了米老师说的那句话,“不怕不知道,就怕不知道”,不怕不知道它,就怕遇到了不知道它是什么意思,我

前言

? ? 还是从上次机房合作验收说起,其中一个特别厉害的师姐提到了依赖注入和控制反转,刚刚听到这个的时候,感觉很熟悉,就是不知道在哪里看到过,想起了米老师说的那句话,“不怕不知道,就怕不知道”,不怕不知道它,就怕遇到了不知道它是什么意思,我可是上升到了不知道的第二个阶段。废话不说了,直奔主题吧。

内容

? ? 记得在哪见过,就去找设计模式了,看到了依赖倒转(倒置)原则,瞬间就想起了一句经久不衰的话:高层模块不应该依赖底层模块,两个应该都依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。

  • 例子:电脑PC的主板不依赖CPU、硬盘、内存条等。PC主板只负责提供对外扩展的接口,PC主板不依赖具体实现。

1、可是这个原则和师姐说的又有什么关系呢?


? ? 依赖注入(Dependency Injection)简称:DI

? ? 控制反转(Inversion of Control)简称:IOC

? ? 还拿主板说事吧!

? ? 图中主板负责抽象各个部件的信息,给出接口,供其他部件依赖连接使用。这里主板相当于高层模块,硬盘、CPU、内存条等相当于底层模块。高层模块定义了接口供底层模块使用。主板并不依赖哪个部件(CPU、硬盘等),只需定义好部件的参数给出接口即可。这里体现了依赖倒置原则,它转换了依赖,高层模块不依赖底层模块的实现,而底层模块依赖于高层模块定义的接口。


2、依赖注入和控制反转


? ? 需要的参与者有:对象、容器、资源

? ? 依赖注入:对象依赖容器创建并注入它需要的外部资源;

? ? 控制反转:容器控制对象,由容器反向的向对象注入对象所需要的外部资源。



? ??

? ? 利楠还是那么会给例子,相当于容器就是VS环境,那些控件就相当于资源,一开始对象上来想实现一个功能,然后就自己去创建实例注入资源。如果多个对象也想实现该一样功能,那么就会导致,创建了同一种但是多个该类资源,严重占用内存,这就是依赖注入;控制反转,相当于VS相当于容器,对象想实现一个功能,需要资源C,VS去工具箱去获取相应的资源C(控件),注入给对象。


? ? 以上只是一些理论方面的解释,后期会给大家一些代码的体现。以上只是本菜鸟的一些见解,还望大家多多指正。

小结

1、有些东西还是得近距离了解,光远看还是不够的。


感谢您的宝贵时间···

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读