IOC介绍:
IOC全称Inversion of Control,中文翻译:控制反转。是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI),还有一种方式叫“依赖查找”(Dependency Lookup)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。
IOC控制反转:传统开发,上端依赖(调用/指定)下端对象,会有依赖
把对下端对象的依赖转移到第三方容器(工厂+配置文件+反射)
能够程序拥有更好的扩展性
DI依赖注入:依赖注入就是能做到构造某个对象时,将依赖的对象自动初始化并注入
三种注入方式:构造函数注入--属性注入--方法注入(按时间顺序)
构造函数注入用的最多,默认找参数最多的构造函数,可以不用特性,可以去掉对容器的依赖
IOC是目标是效果,需要DI依赖注入的手段
下面我准备了一个例子:
然后我们来看看第一种写法
大家觉得这种写法好吗?如果我的windows还依赖了其他东西,你一个个New累不累?
所以我们就有了Unity容器(实际上可以理解为一个工厂)
这里有一份关于Unity的初级解刨给大家看看(他是如何调用这种无限制依赖的构造函数)
百度网盘:https://pan.baidu.com/s/1gFu07Yp3ouB6l69SaoHCog
提取码:y3jw