依赖注入:Dagger删除子图

时间:2016-01-06 17:33:58

标签: android dagger

如果要将子对象图添加到全局对象图中,请使用:

newObjectGraph = objectgraph.plus(new SubModule("SomeConfig"));

现在你完成了SubModule,你想放手(或者你想用SubModule(“AnotherConfig”)替换它。你会怎么做?事实上我需要做什么吗?或者我可以只需这样做:

anotherNewObjectGraph = objectgraph.plus(new SubModule("AnotherConfig"));

PS:这个问题是基于Jake Wharton关于Android的Dagger.1的演示。

1 个答案:

答案 0 :(得分:0)

不完全确定我是否帮助你,但我会试着在这里说清楚。 Dagger的plus方法创建了一个新图形,并保留旧图形。来自文档:

Returns a new object graph that includes all of the objects in this graph...

这意味着只要您保留“根”对象图的实例(在您的示例中为objectGraph),您将始终能够创建范围图(如果您愿意,则可以创建子图)命名)。

因此,在您的示例中,newObjectGraphanotherNewObjectGraph都是完全不同的图表,只能共享objectGraph中的内容。

这是ObjectGraph的github file的链接。

只要您不保留对范围图表的引用,GC就会为您清理它们。