簡體   English   中英

在助手類中使用靜態方法與非靜態方法

[英]Using Static methods in the helper class vs non-static

我有一個幫助器類,它接收一些對象,對其進行處理,然后返回其他類的某些實例,甚至返回對象的列表。 最好的方法是什么:將此輔助方法設為靜態還是非靜態? 問題是我的應用程序可以創建許多Car對象,而我在考慮當每個對象使用靜態助手時是否會對它們產生負面影響?

大多數幫助程序或實用程序類都使用靜態方法。 如果要創建助手類的多個實例,則僅應使用非靜態方法,但是由於只需要一個簡單的input-> function-> output,因此我將這些方法設為靜態。

可能無需確定輔助對象的生命周期就可以解決此問題。

您應該嘗試利用依賴注入方法:

public class X
{
   public X(IHelper helper)
   {
        Helper = helper;
   }

   private IHelper Helper { get; }

   public void DoStuff() 
   {
        var result = Helper.DoOtherStuff(input);
   }
}

也就是說, X不知道Helper是否始終是同一實例,或者它是否是瞬時對象。 這樣可以使代碼更IHelper ,更易於測試,因為您可以使用偽造的IHelper實現模擬幫助程序,以確保您只是在測試X

將靜態類與靜態方法一起使用,該類中沒有實例,沒有派生且只有靜態方法。

public static class HelperClass
{
   public static void HelperMethod()
   {
       // do something
   } 
}

暫無
暫無

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

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