[英]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.