簡體   English   中英

是否有必要使用Dagger 2注入所有內容?

[英]Is it necessary to inject everything with Dagger 2?

我是Dagger的新手。 我對用匕首注入什么和不注入什么感到困惑。 我知道有必要使用Dagger注入Android Framework類和我的類,但是否真的有必要使用Dagger注入基本的Java類,如String,StringBuilder等。

 public String create(Context context) // Creating Simple objects in the method itself
{
 StringBuilder builder=new StringBuilder();
    ....
   return builder.toString();
}


public String create(Context context,StringBuilder builder) // Injecting everything
 {
....
return builder.toString();
}

您無需注入任何東西。 您可以在該方法中創建任何您喜歡的東西。 該方法內部只是普通的舊Java代碼。

僅當在該方法中創建的事物不關心特定值,而僅需要一個值時,才將事物作為參數插入。

注入普通類的事情是您需要對它們進行限定:您在此處注入的String不一定要與在此注入的String相同。 因此,您需要一些消除歧義的方法,例如注釋。

但是,如果順理成章地注入所有內容,那么最終將得到很多注釋。 有時您確實想這樣做; 有時不是。 當您編寫更多代碼時,您會感覺到這一點。

換句話說,注入的重要部分在於它可以讓您管理對象的狀態 (包括生命周期,如果需要的話)。

因此,如果您有一個沒有狀態的類(例如,提供一些無狀態功能的Util類),則永遠不要注入它。

如果您的StringBuilder類不需要共享狀態(即,在兩個對象之間使用相同的StringBuilder),則不需要注入它。

暫無
暫無

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

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