2017-03-04 9 views
2

@Component.BuilderをデフォルトのものではなくComponentsの内部に作成する利点は何ですか? ドキュメンテーションはそれらについてはあまり言及しておらず、合理的な例も見つけられませんでした。誰でもいくつかの考えを共有することができますか?ダガー2コンポーネント.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を拡張する –

関連する問題