摘要:基本的解释想必打开这篇文章的人,对依赖注入和控制反转都有了大致的概念。实际上,在去理解依赖注入和控制反转时,我们需要有两个概念。
基本的解释
想必打开这篇文章的人,对依赖注入和控制反转都有了大致的概念。简单的说:控制反转是依赖注入的实现。
举一个例子男人A 要找女朋友,他可以去网聊、去夜店、去酒吧等等各种地方碰运气,花钱花时间。这是一种找女朋友的方法,也是很多人的做法。
男人B 要找女朋友,他年纪大了没有那么多时间和精力在这方面花费气力,直接去相亲。这是很多大龄青年找女朋友的方法,也就是今天想说的方法。
简单的说明假设以上例子就是找女朋友,找到女朋友就OK。那么哪一个效率更高呢?显然是男人B。
对于男人B 来说,他的目标是找女朋友,他 依赖 相亲 注入 女朋友。这里的相亲可以理解成为一个服务,比如说婚恋网站,同事朋友的介绍,婚介所等等。
对于男人A 来说,他的所投入的时间和金钱等,可以拥有更高质量的女朋友。可能对这个女朋友了如指掌,能完全摸清楚她的脾气,以至于能够控制她。
但对于男人B 来说,想了解和控制这个女朋友就不好说了。因为一点都不了解,更别说控制了。换句话说:控制 这个女朋友的能力,完全 反转 了。
代码的解释很多人不理解依赖注入和控制反转主要是不熟悉适用场景,其实在很多框架中我们说用到了 IoC 和 DI,实际上都是一回事,他实际上就是我们设计模式的一种:门面模式,也称外观模式。
实际上,在去理解 依赖注入 和 控制反转 时,我们需要有两个概念。
我们需要做一件事;
项目中有提供做这件事的方法。
实际的代码class Boy { public function getGirlfriend() { $site = new LoveSite(); $site->createGirl(); } } class LoveSite { public function createGirl() {} } $boy = new Boy; $boy->getGirlfriend();
以上代码是个例子,对于 Boy 来说, LoveSite 是他的一个依赖,只有在使用 Boy,并调用 getGirlfriend 方法的时候,才会被它注入,并创建一个 girl。
而控制反转在这个例子中的体现就是用多带带的一个 LoveSite 类去实现 createGirl 的功能,而不是把这个函数的代码写在 Boy 类中。
以上。。。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/77461.html
摘要:基本的解释想必打开这篇文章的人,对依赖注入和控制反转都有了大致的概念。实际上,在去理解依赖注入和控制反转时,我们需要有两个概念。 基本的解释 想必打开这篇文章的人,对依赖注入和控制反转都有了大致的概念。简单的说:控制反转是依赖注入的实现。 举一个例子 男人A 要找女朋友,他可以去网聊、去夜店、去酒吧等等各种地方碰运气,花钱花时间。这是一种找女朋友的方法,也是很多人的做法。 男人B 要找...
摘要:学习总结学习整理的一些笔记,很简单。大部分认为和只是不同的叫法而已。依赖注入的两种方式和注解使用注释驱动的功能源码剖析 Spring IoC学习总结 学习spring Ioc整理的一些笔记,很简单。分享给大家。 IoC 基本概念 在这之前,我们先记住一句话。好莱坞原则:Dont call us, we will call you.其实这句话很恰当地形容了反转的意味;Ioc, Inve...
摘要:对象之间耦合度过高的系统,必然会出现牵一发而动全身的情形。控制被反转之后,获得依赖对象的过程由自身管理变为了由容器主动注入。于是,他给控制反转取了一个更合适的名字叫做依赖注入。 Spring还可以这么学--IoC(控制反转) / DI(依赖注入)理解 声明:文章的前三部分参考博文:https://www.cnblogs.com/Nouno...这篇文章首发是在我的个人微信订阅号每天学编...
摘要:引述最近看设计模式以及代码,对于控制反转以及依赖注入这些概念非常困惑,于是找了一些资料,以下是对于控制反转的一下理解。其中最常见的方式叫做依赖注入,简称,还有一种方式叫依赖查找。在软件工程中,依赖注入是种实现控制反转用于解决依赖性设计模式。 引述 最近看设计模式以及laravel代码,对于控制反转以及依赖注入这些概念非常困惑,于是找了一些资料,以下是对于控制反转的一下理解。 概念 Io...
摘要:划下重点,服务容器是用于管理类的依赖和执行依赖注入的工具。类的实例化及其依赖的注入,完全由服务容器自动的去完成。 本文首发于 深入剖析 Laravel 服务容器,转载请注明出处。喜欢的朋友不要吝啬你们的赞同,谢谢。 之前在 深度挖掘 Laravel 生命周期 一文中,我们有去探究 Laravel 究竟是如何接收 HTTP 请求,又是如何生成响应并最终呈现给用户的工作原理。 本章将带领大...
阅读 3066·2021-08-03 14:05
阅读 2108·2019-08-29 15:35
阅读 617·2019-08-29 13:30
阅读 3136·2019-08-29 13:20
阅读 2500·2019-08-23 18:15
阅读 1770·2019-08-23 14:57
阅读 2180·2019-08-23 13:57
阅读 1274·2019-08-23 12:10