如果要将子对象图添加到全局对象图中,请使用:
newObjectGraph = objectgraph.plus(new SubModule("SomeConfig"));
现在你完成了SubModule,你想放手(或者你想用SubModule(“AnotherConfig”)替换它。你会怎么做?事实上我需要做什么吗?或者我可以只需这样做:
anotherNewObjectGraph = objectgraph.plus(new SubModule("AnotherConfig"));
PS:这个问题是基于Jake Wharton关于Android的Dagger.1的演示。
答案 0 :(得分:0)
不完全确定我是否帮助你,但我会试着在这里说清楚。 Dagger的plus
方法创建了一个新图形,并保留旧图形。来自文档:
Returns a new object graph that includes all of the objects in this graph...
这意味着只要您保留“根”对象图的实例(在您的示例中为objectGraph
),您将始终能够创建范围图(如果您愿意,则可以创建子图)命名)。
因此,在您的示例中,newObjectGraph
和anotherNewObjectGraph
都是完全不同的图表,只能共享objectGraph
中的内容。
这是ObjectGraph的github file的链接。
只要您不保留对范围图表的引用,GC就会为您清理它们。