控制反转(IOC)
含义:原来由人为(程序员)修改代码 控制流程,反转为由程序【框架】去控制
控制反转(Inversion of Control) 是一种设计思想
没反转的情况(正转)
1 | class Application { |
反转后的情况(反转)
1 | abstract class Supplier { |
依赖注入(DI)
依赖注入 是一种设计模式
依赖注入是控制反转的一种实现方式/方法
也就是依赖注入 实现了 控制反转
依赖注入方式 1、构造方法注入;2、set属性注入__set;3、静态工厂方法注入;
一旦换了平台,就要修改构造函数 即使你传参数 构造判断使用哪个类,新增了平台,你还有去修改A类构造方法
1 | class A{ |
通过构造函数注入 依赖
1 | class A{ |
IoC容器
将依赖的对象注入到容器中
当需要某个对象的时候,就直接获取,不必关注其实例化需要些什么,容器自动实例化了
运行时容器会自动解析依赖(存在子依赖也可以自动解析)
1 |
|
1 | //依赖关系:Company->Department->Group |