2015-11-29 12 views
12

ダガー2依存性注入システムを理解するのは本当に苦労しています。誰かがダガー2についてよく説明できますか?

私はDaggerにここにいくつかのタイプのインスタンスを提供する必要があることを伝えるために@Inject注釈を使用することを理解しています。

しかし、@Module@Component@Providesなどの他のコンポーネントのさまざまな役割と、適切なインスタンスを適切な依存関係に提供する方法については理解していません。

誰かが簡単に簡潔に説明できますか?

答えて

10

@Module:モジュールは、メソッドの依存関係を提供するクラスですので、我々は、このように、ダガーはどこにそれらを満足させるために、依存関係を見つけるために を知っているクラスを定義し、@Moduleでそれに注釈を付ける クラスインスタンスを構築するとき 。モジュールの重要な特徴の1つは、 が分割されて一緒に構成されるように設計されていることです( インスタンスの場合、複数の構成済みの モジュールを持つことができます)。

@Component:コンポーネントは基本的にのがその主な責任は一緒に の両方を置くことです @Inject@Module、間のブリッジを言わせて、インジェクタです。彼らはただ、例えば、我々は@Component とのインタフェースに注釈を付けると、そのコンポーネントを構成するすべての@Modulesを一覧表示し、それらのいずれか が欠落している場合必要がありますあなたが 定義されたすべてのタイプのインスタンスを与え、コンパイル時にエラーが発生します。 のすべてのコンポーネントは、 モジュールを通じて提供される依存関係の範囲を認識しています。

@Provide:私たちはそれらの 言及した依存関係を構築して提供する方法ダガーを告げるこの注釈 を含むメソッドを定義する内部モジュール。

:私はこれを読むためにあなたに助言

私はそれが理解するのに役立つと思います。

関連する問題