作者:流行时尚吾诺饰品手_317 | 来源:互联网 | 2023-05-28 19:14
我不确定有什么区别?我什么时候应该使用哪个?
http://square.github.io/dagger/javadoc/index.html
1> colriot..:
includes
表示当前模块由哪些模块组成.例如,它对于静态聚合所有模块很有用:
@Module(
includes = { AndroidModule.class, NetworkModule.class, StorageModule.class }
)
public class RootModule() {
}
// other file
objectGraph = ObjectGraph.create(new RootModule());
而不是动态:
objectGraph = ObjectGraph.create(
new AndroidModule(),
new NetworkModule(),
new StorageModule());
因此,充分利用编译时图验证.
addsTo
特别涉及父子模块的关系.它表示模块是某个模块的扩展,用作.plus()
参数.例如,有两个模块:
@Module(
//...
)
public class ParentModule() {
//...
}
@Module(
addsTo = { ParentModule.class },
//...
)
public class ChildModule () {
//...
}
这个配置意味着parentGraph = ObjectGraph.create(new ParentModule());
你可以childGraph = parentGraph.plus(new ChildModule());
在代码中的某个地方执行后创建扩展的,通常是短命的子图.