Dagger基础入门
前言
Dagger是一个依赖注入框架。
目录
1.Dagger的定义
Dagger是一个完全静态的、编译时依赖注入框架。
2.作用
1:自动生成代码,使您无需再编写乏味又容易出错的样板代码。
2:可以重复使用依赖项和帮助你创建实例
3:为特定流程创建容器,这样可以释放内存中不需要的对象,从而提升应用的性能。
(解耦)
3.特点
1:Dagger在编译时会自动生成代码,因此具有可追溯性,而且性能高于其他基于反射实现的解决方案。
2:在内部,Dagger会创建一个对象关系图,然后参考该图来找到提供类实例的方法。对于图中的每一个类,Dagger会生成一个factory类型的类,在该类的内部获取该类型的实例。
3:构建应用时,Dagger会验证依赖关系图,确保每个对象的依赖关系都得到满足,避免出现运行时异常以及确保不会出现任何循环依赖的情况,避免出现无限循环。
4:自动生成实际的对象以及它的依赖项的实例对象。
4.设计思想
控制反转原则+依赖注入
控制反转(IOC):是一种设计原则,用来降低代码之间的耦合度。通过控制反转,对象在被创建的时候,由外部的一个调控系统将该对象所依赖的对象的引用传递给它。(不要我去找你,你来找我)
//无控制反转设计
public class A {
private B b;
public A(){
this.b = new B();
}
void doSomeThing(){
b.bMethod();
}
}
public static void main(String[] args) {
A a = new A