IOC 容器
IoC 不是一种技术,只是一种思想,一个重要的面向对象编程的法则,它能指导我们如何设计出松耦合、更优良的程序。传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合,难于测试;ioc 则是我们把自己 new 对象和调用的交给了 ioc 容器来去实现 ,由容器进行注入组合对象,所以对象与对象之间是 松散耦合,利于功能复用,更重要的是使得程序的整个体系结构变得非常灵活。
- ioc 容器
控制反转
也称为服务容器
, 或者说是一种超级工厂模式
- laravel 也自带容器并不用我们去刻意封装的,在 config 下的 app.php 中的 aliases 可以发现门面 App 位于 Illuminate\Support\Facades\App::class, 可以直接使用
- 我们主要使用了容器中的 bind () 方法和 make () 方法
我们通过依赖注入机制,只需通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。
理解 DI 主要有几点:谁依赖谁,为什么需要依赖,谁注入谁,注入了什么
- 谁依赖于谁:当然是应用程序依赖于 IoC 容器;
- 为什么需要依赖:应用程序需要 IoC 容器来提供对象需要的外部资源;
- 谁注入谁:很明显是 IoC 容器注入应用程序某个对象,应用程序依赖的对象;
- 注入了什么:就是注入某个对象所需要的外部资源(包括对象、资源、常量数据