この例では、シリアライザオブジェクトは、2つのメソッドのインスタンス変数またはメソッド変数である必要がありますか?両方のアプローチの長所と短所は何ですか?この例では、インスタンス変数かメソッド変数か?
public class CustomerHelper
{
private _Serializer;
private JavaScriptSerializer Serializer {
get
{
if (_Serializer == null) {
_Serializer = new JavaScriptSerializer();
}
return _Serializer;
}
public Customer GetJsonLog(Customer Cust)
{
return GetFromLog(Serializer.Searilize(Cust));
}
public void WriteToLog(Customer Cust)
{
SaveToLog(Serializer.Searilize(Cust));
}
}
編集 - スレッドセーフに関する問題を無視して、Seralizerオブジェクトが再利用されるとします。
コード内でシリアライザに到達するための2つの異なる方法 - 基本的には 'NullReferenceException'をスローする可能性があることを心配します。なぜあなたのコンストラクタでそれを初期化し、 'private serialiser'プロパティを削除しないのですか? – MickyD
そのプロパティが2つの異なるメソッドでのみ使用されている場合はどうなりますか?だからこそ私はそれを怠けていたのです。 – user3587180
私はなぜこの質問が投票されているのか分かりません。私はそれが有効な質問だと思った。 – user3587180