IoC(控制反转)/DI(依赖注入)
- 涉及到的疑问
- 参与者都有谁?
- 谁依赖谁?为什么需要依赖
- 谁注入谁?为什么需要注入
- 谁控制谁?控制什么?为什么需要反转?什么是反转?什么是转?
- Ioc==DI?
- 开始回答
- 参与者都有谁?
一个是对象,一个IoC容器,一个是对象的外资源,如对象依赖的对象。 - 谁依赖谁?为什么需要依赖
初代:对象依赖外部资源,对象需要外部资源完成自己的动作。
Ioc后:对象依赖Ioc容器,需要Ioc容器注入外部资源。 - 谁注入谁?为什么需要注入?
Ioc容器注入外部资源到对象中,控制反转后,对象失去了对外部资源的控制,需要容器进行外部资源的注入。 - 谁控制谁?控制什么?为什么需要反转?什么是反转?什么是转?
调用类对实现类选择的控制
调用类需要的实现类由第三方控制,实现的代码解耦
将实现类的选择交给了容器来指定失去的了对实现类的控制,交给容器处理。
控制权的转移 - Ioc==DI?
Ioc控制反转突出 控制权的移交,一个是结果,只要是移交出去都是控制反转。
DI是控制权的移交后进行使用,一个是过程,ioc的一种实现方式。
- 参与者都有谁?
网友评论