依赖

某个对象在程序运行时需要使用一些外部资源,即该对象和这些外部资源存在依赖关系。

依赖倒置原则 Dependence Inversion Principle

程序要依赖于抽象接口,不要依赖于具体实现。

核心是面向抽象(抽象类或接口)编程

控制反转 Inversion of Control IoC

IoC容器负责控制对象的生命周期和对象之间的关系

控制对象生存周期的不再是应用它的对象,而是IoC容器。

对于某个具体的对象而言,本应是它控制它所依赖的对象,现在却统一由IoC容器控制,这种情形就是控制反转。

依赖注入 Dependency Injection DI

被注入对象 依赖 IoC容器 配置 其依赖对象

容器动态地将某个依赖关系注入到组件之中 便于组件重用

“谁依赖谁,为什么需要依赖,谁注入谁,注入了什么”

谁依赖谁:应用程序依赖于IoC容器

为什么需要依赖:应用程序需要IoC容器提供对象需要的外部资源

谁注入谁:IoC容器注入应用程序 某个对象(应用程序依赖的对象)

注入了什么:注入某个对象所需要的外部资源

相关链接

控制反转(IoC)与依赖注入(DI)

依赖注入和控制反转的理解,写的太好了。

[ Laravel 从学徒到工匠系列 ] 设计原则篇:依赖反转原则

依赖注入、控制反转、反射各个概念的理解和使用

Laravel 服务容器实例教程 —— 深入理解控制反转(IoC)和依赖注入(DI)