Dagger学习

看到网上有Dagger的介绍就想着学习一下,可是找到的都是一些很初级的教程,没有解释注解的具体含义,看着有些头大,就自己找了些教程看了下

下面是2014年的文章,一位博主翻译的,可以看一下,这是我看到的解释的比较清楚的一篇文章,当然由于是两年前的文章,一些用法已经改变了,大家可以参考这篇文章理解下注入的概念:
https://asce1885.gitbooks.io/android-rd-senior-advanced/content/androidzhong_de_yi_lai_zhu_ru_ff1a_dagger_han_shu_ku_de_shi_yong_ff08_yi_ff09.html

后续看一下能不能翻译google的官方文档

Qualifier关键字
//主要作用是帮助Dagger识别两个相似依赖的对应provide函数
@Qualifier
@Documented
@Retention(RUNTIME)
public @interface Named { String value() default "";}
比如下面这个类:
class ExpensiveCoffeeMaker {
@Inject @Named("water") Heater waterHeater;
@Inject @Named("hot plate") Heater hotPlateHeater;
...}

下面是它的provide函数
@Provides @Named("hot plate")
static Heater provideHotPlateHeater() {
return new ElectricHeater(70);
}
@Provides @Named("water")
static Heater provideWaterHeater() {
return new ElectricHeater(93);
}
//为了区分上面的两个函数使用了Named注解帮助dagger识别

你可能感兴趣的:(Dagger学习)