什么是IOC呢?
控制反转(Inverse of control),用来降低代码的耦合度,最常见的方式叫做依赖注入(Dependency Injection,DI),IOC的思想核心在于,资源不由使用资源的那乙方管理,而有不使用资源的第三方管理
IOC优点和缺点
- 资源集中管理,实现资源的可配置和易管理
- 降低了使用资源双方的依赖程度,也就是耦合度
- 缺点:创建对象的步骤变复杂了
- 缺点:使用反射,会降低一定的性能
- 但是,相对于提高了程序的灵活性和可维护性来说,这些损耗微不足道
控制反转?依赖注入?
控制反转IoC(Inversion of Control)是说创建对象的控制权进行转移,以前创建对象的主动权和创建时机是由自己把控的,而现在这种权力转移到第三方,比如转移交给了IoC容器,它就是一个专门用来创建对象的工厂,你要什么对象,它就给你什么对象,有了 IoC容器,依赖关系就变了,原先的依赖关系就没了,它们都依赖IoC容器了,通过IoC容器来建立它们之间的关系。
DI(依赖注入)其实就是IOC的另外一种说法,表示我依赖你去帮我做一些例如变量初始化这类操作。
IOC依赖注入的两种实现
- 编译期 ,例如 XUtils
- 运行期,例如ButterKnife
注入的模块有哪些?
- 布局< Java(Source)->class(Class)->JVM(RunTime)>
- 视图
- 事件