android dagger - include关键字的用处

时间:2015-01-15 17:53:06

标签: android dependency-injection dagger square

匕首中使用的'包含'字是什么?例如,来自文档的是这样定义的模块:

@Module(
includes = {
    DripCoffeeModule.class,
    ExecutorModule.class
}
)
public class CoffeeAppModule {
}

请注意,作为应用模块的模块如何包含其他模块?为什么?什么是有用的。您可以查看示例here

我不理解模块注释中的includes关键字,它用于什么?

来自javadocs,它描述的以下定义仍让我感到困惑,有人可以提供一个例子:

包括 附加的@ Module-annotated类,用于编写此模块。

更新:我认为包含的意思是,如果我在其他模块中有提供者在module1.java中说,那么如果我在module2.java中包含'module1.java,它可以看到其中的所有提供者方法和范围module2现在已经增加了,这是正确的吗?

2 个答案:

答案 0 :(得分:1)

用于将Graph拆分为多个模块。因此,您使用" Root" -Module创建ObjectGraph,其中可能包含多个模块(然后可以再次包含模块)。这样就可以将模块拆分为逻辑组。

答案 1 :(得分:0)

我想我现在明白了。如果要包含外部视图组等,Include就像C头中的'include'或包含在android的xml文件中一样。它只是意味着你在文件中包含模块方法本身。这只是一种分割出有组织的代码的方法。所以'addsto'将它添加到您指定的模块的图形中,但'includes'只是将该模块中的代码复制到文件中。