2017-03-04 46 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 –