我有一個類,我正在使用序列化和反序列化ASP.NET應用程序中的業務對象。DataContractJsonSerializer的靜態實例 - 好的還是壞的設計?
類包含這個靜態變量:
private static DataContractJsonSerializer m_serializer = new DataContractJsonSerializer(typeof(MyBusinessObject));
...並在類兩個靜態方法:
public static string SerializeJson(MyBusinessObject bo);
public static MyBusinessObject DeserializeJson(string json);
在這些方法中,我使用靜態DataContractJsonSerializer對象(m_serializer)至執行序列化和反序列化。這樣,我不需要爲每個調用實例化一個DataContractJsonSerializer實例。
以這種方式使用靜態變量是否正確?
如果我在序列化/反序列化代碼上得到很多點擊,我會遇到任何問題嗎?
它會從每秒獲得100個併發點擊的網站調用。
在有限的測試中,無論我使用靜態變量還是每次調用初始化,性能似乎大致相當。 – frankadelic
在這種情況下,不要擔心優化代碼 - 以便於維護的方式編寫代碼。正如Knuth大師所說,「不成熟的優化是萬惡之源」。 – carlosfigueira