SOLID 原則の解明 — (D)

Apr 17 2023
依存性逆転の原則
クラスは抽象化に依存する必要がありますが、具体化には依存しません。つまり、高レベルのモジュールは低レベルのモジュールに依存してはなりません。どちらも抽象化に依存する必要があります。

クラスは抽象化に依存する必要がありますが、具体化には依存しません。つまり、高レベルのモジュールは低レベルのモジュールに依存してはなりません。どちらも抽象化に依存する必要があります。

サンプルシナリオ

同じシナリオをAreaCalculatorクラスで使用して、新しい機能を追加してみましょう。今回は、ユーザーはクラスAreaCalculatorDisplayに反転を導入したいと考えています。

依存性逆転の原則に違反しないように、クラスAreaCalculatorによって実装されるICalculatorと呼ばれるインターフェイスを作成し、その抽象化はクラスAreaCalculatorDisplay によって消費されます。

したがって、 AreaCalculator内の機能またはメソッドが変更された場合でも、AreaCalculatorDisplay は、高レベル インターフェイスの抽象化レベルにより、アプリケーションの機能フローを中断することなく機能できます。

主な利点

  1. 高レベル モジュールは低レベル モジュールに依存する必要はありません。どちらも抽象化に簡単に依存できます。
  2. 低レベル モジュールは、インターフェイスの実装を実行できます。
  3. コードの柔軟性とスケーラビリティの向上。