我有一对带有复杂的一次性初始化的静态字段。我希望这种初始化是懒惰的, a la 标准singleton pattern。
但是,初始化过程涉及两个字段,因此我无法将其分成两个不同的单例。
处理此问题的最佳方法是什么?
答案 0 :(得分:1)
创建一个包装类,其中包含对“单例”的引用,并使该类成为单例?
<强>附录:强>
如果你真的想通过这种方法避免第二级间接,你总是可以分两个阶段来完成:
答案 1 :(得分:0)
我目前正在这样做:
class OuterType {
//...
static class FieldInitializer {
public static readonly SomeType field1, field2;
static FieldInitializer() {
//Complicated code that sets both fields together
}
}
//...
}
有没有人有其他想法?