複雑なワンタイム初期化を持つ静的フィールドのペアがあります。私はこの初期化が遅れて起きるようにしたい、aaa標準singleton pattern。多変量の複雑なシングルトン
ただし、初期化手順には両方のフィールドが含まれているため、2つの異なるシングルトンに分割することはできません。
これを処理する最善の方法は何ですか?
複雑なワンタイム初期化を持つ静的フィールドのペアがあります。私はこの初期化が遅れて起きるようにしたい、aaa標準singleton pattern。多変量の複雑なシングルトン
ただし、初期化手順には両方のフィールドが含まれているため、2つの異なるシングルトンに分割することはできません。
これを処理する最善の方法は何ですか?
私は現在、このようにそれをやっている:
class OuterType {
//...
static class FieldInitializer {
public static readonly SomeType field1, field2;
static FieldInitializer() {
//Complicated code that sets both fields together
}
}
//...
}
誰もが任意の他のアイデアを持っていますか?
'シングルトン'の両方への参照を含むラッパークラスを作成し、そのクラスをシングルトンにしますか?
補遺:(
私はこれらの2つのフィールドが実際にクラスに属していると確信しています。一緒に初期化する必要がある場合は、一緒に使用され、問題のドメインまたは解決のドメインのいずれかの概念を表す可能性が高いようです。 –
参照:http://www.yoda.arachsys.com/csharp/singleton.html 5番目のオプション。あなたは基本的にすでにそれをやっています。 –