laravel-控制器篇-依赖注入

未匹配的标注

学习链接

xueyuanjun.com/post/9614

什么是依赖注入?

提到依赖注入,就绕不开服务容器

  1. 首先简单说服务容器

服务容器是一个绑定多个接口与具体服务实现类的容器,
依赖注入则是在代码编写时以接口(或者叫做类型提示)方式作为参数,不必传入具体实现类,在代码运行时会根据配置从服务容器获取接口对应的实现类执行具体的接口方法,从而极大提高了代码的可维护性和可扩展性。
其中,laravel $request 对象获取用户请求数据, Session、Cookie就是采用依赖注入的方式。

举个例子: 我把usb插入电脑

我们举一个生活中的例子,来帮助理解依赖注入的过程。大家对USB接口和USB设备应该都很熟悉吧,USB为我们使用电脑提供了很大的方便,现在有很多的外部设备都支持USB接口。

图6:USB接口和USB设备

现在,我们利用电脑主机和USB接口来实现一个任务:从外部USB设备读取一个文件。
电脑主机读取文件的时候,它一点也不会关心USB接口上连接的是什么外部设备,而且它确实也无须知道。它的任务就是读取USB接口,挂接的外部设备只要符合USB接口标准即可。
所以,如果我给电脑主机连接上一个U盘,那么主机就从U盘上读取文件;
如果我给电脑主机连接上一个外置硬盘,那么电脑主机就从外置硬盘上读取文件。
挂接外部设备的权力由我作主,即控制权归我,
至于USB接口挂接的是什么设备,电脑主机是决定不了,
它只能被动的接受。电脑主机需要外部设备的时候,根本不用它告诉我,我就会主动帮它挂上它想要的外部设备,你看我的服务是多么的到位。
这就是我们生活中常见的一个依赖注入的例子。在这个过程中,我就起到了IOC容器的作用。

通过这个例子,依赖注入的思路已经非常清楚:当电脑主机读取文件的时候,我就把它所要依赖的外部设备,帮他挂接上。整个外部设备注入的过程和一个被依赖的对象在系统运行时被注入另外一个对象内部的过程完全一样。

举个例子:人和四肢

laravel-控制器篇-依赖注入

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
发起讨论 只看当前版本


暂无话题~