2017-03-04 47 views
2

我一直在想,在Components裏面創建自己的@Component.Builder有什麼好處,而不是使用默認的? 文檔沒有多說這些,也沒有找到任何合理的例子。任何人可以分享一些想法?Dagger 2 Component.Builder

+2

https://google.github.io/dagger/users-guide.html#binding-instances – Jeremy

回答

3

幾個優點:

  • 傑里米在評論中指出的,因此當你想使用@BindsInstance需要一個顯式接口。
  • 一個明確的接口可以讓你任意命名你的Module方法,或者將每個方法的Javadoc添加到你的構建器方法中。如果您的模塊實例是可選的,或者需要手動創建它們,這可能特別方便。
  • 一些IDE和工具在代碼生成的界面上表現不佳。一個顯式的Builder可以讓你定義你自己的工具可讀接口,讓Dagger稍後生成實現。
  • 顯式接口可能會讓您更容易在單元測試中模擬您的組件構建器。這對於子組件構建者來說可能特別方便,它們遵循與組件構建者相同的規則。
+0

在AppComponent使用@ Component.Builder通過應用程序供應商,我怎麼能寫測試建設者零件 。它擴展了appcomponent –