依存性逆転の原則(Dependency Inversion Principle)
SOLID原則のひとつ。
上位モジュールは下位モジュールに依存してはいけない。どちらのモジュールも抽象に依存すべき。
抽象は実装の詳細に依存してはならない。実装の詳細が抽象に依存すべき。
internal class BClz
{
internal string GetGreet() => "こんにちは";
}
public class AClz
{
public void Greet()
{
var b = new BClz(); // Bに依存
System.Console.WriteLine(b.GetGreet());
}
}
上記のコードは以下の図のように、AClzがBClzに依存している。
逆転とあるので、やりたいことは以下の図。
これを実現するためには、
- BClzのインターフェイスIBClzを容易する。
- IBClzを継承してBClzを実装する。
- AClzはIBClzに依存させる。
実装方法は以下の方法で行う。