22/10/29 15:37:22.23 lV3hVGRgM.net
>>470
結果的にシングルトンにする場合でもそれを使う側はそれがシングルトンだと意識しない方が後で変更する時に助かる
そのためにはインスタンスが必要
class Foo : IFoo {
private IBar bar;
public Foo(IBar b) => bar = b;
public void DoSomething() => bar.Hello();
}
class BarSinglton : IBar {
private static BarSingleton Instance { get; } = new BarSingleton();
public void Hello() => Console.Write("world");
}
var foo = new Foo(BarSingleton.Instance);
foo.DoSomething()
//////////////
class NewVersionBar : IBar {
public void Hello() => Console.Write("im not single");
}
var foo = new Foo(new NewVersionBar());
foo.DoSomething();
シングルトンじゃないのでFooは変えなくていい
シングルトンだとFooも書き換え必須