关于注入依赖:
依赖注入是在编译阶段尚未知所需的功能是来自哪个的类的情况下,将其他对象所依赖的功能对象 实例化的模式。
我们常见的注入模式有三种:
- 构造器注入
- Setter注入
- 接口注入
关于反转控制:
反转控制,我曾经纠结了很久,不知道该如何表述;
简单点说就是:
控制反转是应用于软件工程领域中的,在运行时被装配器对象来绑定耦合对象的一种编程技巧,对 象之间耦合关系在编译时通常是未知的。
在传统的编程方式中,业 务逻辑的流程是由应用程序中的 早已被设定好关联关系的对象来决定的。在使用控制反转的情况下,业务逻辑的流程是由对象关系
图来决定的,该对象关系图由装配 器负责实例化,这种实现方式还可以将对象之间的关联关系的定 义抽象化。而绑定的过程是通过“依赖注入”实现的。
举个例子:
你需要找一个工作,一般情况的写简历去看什么公司在招人。然后面试,入职;
但是现在有一个机构收集了你的简历,一旦你需要找工作。大数据直接推荐完成面试,入职流程。
这个过程中,找工作的控制权就被反转。原本你自己筛选,现在机构充当一个容器,将你纳入其中进行管理。
这个就是反转控制:你不用自己去找,直接看offer入职吧。
需要注意的是:反转控制不是一种技术,而是一种思想。