博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单解释什么是 依赖注入 和 控制反转
阅读量:6719 次
发布时间:2019-06-25

本文共 859 字,大约阅读时间需要 2 分钟。

简单解释什么是 依赖注入 和 控制反转

2017-07-09

关于 依赖注入 与 控制反转 的概念有些人觉得很难理解,最近在给别人讲这个概念的时候梳理了一个比较好理解的解释,而且我认为非技术人员也应该能听的懂,因此分享给大家,希望下次你在给别人讲的时候也能讲的明白。

其实 依赖注入 和 控制反转 说的是同一件事情,只是站的角度不同而已。

我们就拿超人和小怪兽的事情来做类比对象。

地球受到了威胁,不断有小怪兽来想要破坏地球,每来一个小怪兽我们就需要找一个超人去对付他,一个超人肯定是不够的,因为每次来到小怪兽都是不一样的,他们所具有的能力也是不一样的。

因此我们必须找到合适的超人去对付他,最坏的情况是每来一个小怪兽我们就要找一个或者制造一个新超人,那么来十个小怪兽,我们就要制造十个,来百个就要制造百个,来千,来万,来亿我们就要制造相应的超人,而大部分超人只能用一次。

为了解决这个问题我们引入依赖注入和控制反转的概念,我们将超人和超能力分开,独立的超人和独立的超能力,当一个小怪兽来的时候我们找到超人,将相应的超能力给予他,让他去消灭小怪兽。

这样的话我们只需要几个超人就好了,我们不再需要制造超人,而是研究如何制造更多更好的超能力给超人使用。

超能力和超人不再是强依赖关系。超能力是由外部给予超人的,超人和超能力有依赖,但是这个依赖是外部给予,因此我们可以说超能力是由外部注入给他的,所以这就叫 依赖注入。

而反过来说,超人具有何种超能力不是他内部自身控制的,而是由外部控制的,相当于将超能力具有何种功效交给了外部,外部来决定超人该有的超能力,所以超能力的控制权被由自身控制反转为外部控制,这被称为 控制反转。

这就是关于 依赖注入 和 控制反转 的我的比较好理解的解释。它能较好的解决对象与对象之间的强耦合问题,同时也能做的按需使用按需加载。

顺便说一下,钢铁侠和蝙蝠侠更受欢迎的原因我认为就是因为他们的超能力是外部给予的,而非自身的,因此可以不断有新的超能力给他们使用,因此也更有看点和新鲜感。

原文转载自

你可能感兴趣的文章
微信小程序开发(3) 热门电影
查看>>
二极管与、或门,三极管非门电路原理
查看>>
美图T8s真机来了!电影人像和云端AI处理是亮点
查看>>
卑不谋尊,疏不谋戚
查看>>
Docker上的MySQL:MySQL容器的单主机网络
查看>>
阿里巴巴股价大涨市值超腾讯居亚洲第一
查看>>
360发布企业BYOD安全管理系统"360天机"
查看>>
容器网络概述
查看>>
使用C++和DirectX开发游戏GUI(三)
查看>>
我的WCF之旅(5):面向服务架构(SOA)和面向对象编程(OOP)的结合——如何实现Service Contract的重载(Overloading)...
查看>>
Mellanox:一切以数据为中心 重构网络世界
查看>>
2013年首次亮相的RoboBee,如今却能”上天入海“
查看>>
在Docker里运行Ceph
查看>>
这里有一份面筋请查收(五)
查看>>
Java中的匿名对象
查看>>
最新发布:数据库防火墙技术市场调研报告
查看>>
AI如何为安防赋能?具体场景案例解析
查看>>
揭秘“史上最严高考”背后的高科技手段
查看>>
百分点:在线旅游阿里去啊购买转化最高
查看>>
“互联网+”改变传统教育模式
查看>>