我剛拿到一個項目,它有一些使用靜態方法的核心類。使用HttpContext和數據庫連接的靜態方法
它是一個C#項目,其接口反映了一些JavaScript方法。 在這個界面中,有使用了大量的調用靜態方法的HttpContext的,並從數據庫中的數據(實際上只是一個訪問數據庫),像這樣的(一些方法有內部的一些邏輯):
public static string UsrId {
get{
try {
return HttpContext.Current.Session["usrid"].ToString();
} catch(NullReferenceException) {
return ServiceVars.GuestId;
}
}
}
所以我的問題是:
這是不好的實踐嗎?做這件事的利弊(和優點)是什麼?
我在某處讀到使用數據庫連接的靜態方法對高流量站點不利,因爲它會排隊請求。這是真的?或者我應該不用擔心靜態方法中的數據庫連接?
那麼靜態方法中的HttpContext呢,它不好,爲什麼?
這裏有什麼不好的是'NullReferenceException'的問題。永遠不要這樣做。 –
使用大量靜態方法的一個問題是,如果您稍後決定要使用「[依賴注入](http://jamesshore.com/Blog/Dependency-Injection-Demystified.html)」,它們可能會成爲障礙。 「,例如,如果您正在嘗試爲您的代碼構建一組單元測試。關於你對數據庫連接的評論......靜態方法的本質並不會導致這樣的問題。這取決於某人是否已經實現了他們特定的數據庫連接代碼,無論是否使用靜態方法。 –