簡體   English   中英

Dagger2中模塊和組件之間的區別

[英]Difference between module and component in Dagger2

有人可以告訴我Dagger2 modulecomponent之間的基本區別是什么?

如果可能的話,請告訴我們一些例子,以便於理解。

我們可以在模塊中對依賴關系進行分組,例如,Network模塊可以提供HTTPClient Retrofit,GSON,HTTP Logger等。

類似地,我們可以擁有數據庫模塊,應用程序模塊或任何特定功能模塊。

組件是Module(提供者)和Activity / Fragment(Consumer)之間的橋梁,它可以有多個模塊。

在Activity / Fragment中,我們可以通過定義如下來獲得這些依賴

@Inject 
Gson gson;   

注入組件后,這些依賴關系將被實現(在這種情況下,網絡組件包含包含Gson Provider方法的網絡模塊)

getNetworkComponent().inject(MyActivity.this/MyFragment.this)

這是一個非常好的教程,簡單的例子 https://code.tutsplus.com/tutorials/dependency-injection-with-dagger-2-on-android--cms-23345

換一種說法

依賴性使用者通過連接器向依賴性提供者請求依賴性(Object)。

依賴提供者:

使用@Module注釋的類負責提供可以注入的對象。 這些類定義了使用@Provides注釋的方法。 這些方法返回的對象可用於依賴注入。

依賴性消費者:

@Inject注釋用於定義依賴項。

連接消費者和生產者:

@Component帶注釋的接口定義對象(模塊)提供者與表示依賴關系的對象之間的連接。 此連接的類由Dagger生成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM