我有一對具有複雜的一次性初始化的靜態字段。我希望這種初始化能夠延遲發生,a la標準singleton pattern。多變量複雜單例
但是,初始化過程涉及兩個字段,所以我不能將它分成兩個不同的單例。
處理這個問題的最佳方法是什麼?
我有一對具有複雜的一次性初始化的靜態字段。我希望這種初始化能夠延遲發生,a la標準singleton pattern。多變量複雜單例
但是,初始化過程涉及兩個字段,所以我不能將它分成兩個不同的單例。
處理這個問題的最佳方法是什麼?
目前,我正在做這樣的:
class OuterType {
//...
static class FieldInitializer {
public static readonly SomeType field1, field2;
static FieldInitializer() {
//Complicated code that sets both fields together
}
}
//...
}
沒有人有任何其他的想法?
創建一個包裝類,該類包含對'singletons'的引用並使該類成爲singleton?
附錄:
如果你真的想避免間接的這種方法的第二個層次,你總是可以做到這一點在兩個階段:
我敢打賭,這兩個領域實際上屬於一個班級,而不僅僅是爲了方便。如果他們需要一起初始化,它們一起使用,並且可能代表問題域或解決方案域中的某個概念,那麼似乎很可能。 – 2009-07-05 03:25:49