2016-01-06 85 views
0

當你想要一個子objectgraph添加到您的全局對象圖使用:依賴注入:匕首取出子圖

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

現在你與子模塊完成,你想讓它去(或?或許你想與子模塊(「AnotherConfig」)來代替它,你會怎麼做其實,我需要做什麼或者我可以簡單地做:

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

PS:這個問題是基於關於Android上的Dagger.1的演示文稿由Jake Wharton提供。

回答

0

不能完全確定,如果我得到你的權利,但我會嘗試在這裏提供一些線索。 Dagger的plus方法創建一個新圖並保留原來的圖。從文檔:

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

這意味着,只要你保持你的「根」對象圖的實例(objectGraph在你的例子),你隨時都可以創建範圍的圖表(或子圖如果你更喜歡命名)。

因此,在您的示例中,newObjectGraphanotherNewObjectGraph都是完全不同的圖表,只能分享objectGraph中的內容。

以下是ObjectGraph的github file的鏈接。

只要您不保留對範圍圖的引用,GC就會爲您清理它們。