私のアプリケーションでは、シングルトンクラスはほとんど必要ありません。それぞれには、それらを使用する他のシングルトンクラスのいくつかのフィールドがあります。以下は、単純な例で問題を再構築したものです。それぞれのフィールドを含むシングルトンクラスnull参照例外
public sealed class A
{
private B b = B.Instance;
private static readonly A instance = new A();
public static A Instance { get { return instance; } }
static A() { }
private A() { }
public void Do()
{
b.ToString();
}
}
public sealed class B
{
A a = A.Instance;
private static readonly B instance = new B();
public static B Instance { get { return instance; } }
static B() { }
private B() { }
public void Do()
{
a.ToString();
}
}
class Program
{
static B b = B.Instance;
static A a = A.Instance;
static void Main(string[] args)
{
b.Do();
a.Do();
}
}
フィールドがnullのため、null参照例外が発生します。だから私はどのように初期化し、そのような相互接続シングルトンクラスを使用できますか?
なぜこのようなクロスですか?依存性は通常、悪い設計の兆候です。 – Thomas