1. ホーム
  2. oop

[解決済み】依存関係逆転の原則とは何ですか、なぜそれが重要なのですか?

2022-04-11 16:37:43

質問

依存関係逆転の原則とは何か、なぜそれが重要なのか。

どのように解決するのですか?

このドキュメントをご覧ください。 依存関係逆転の原則 .

基本的にはこう書いてある。

  • 高レベルのモジュールは低レベルのモジュールに依存してはならない。どちらも抽象化されたものに依存すべきです。
  • 抽象化は決して詳細に依存してはならない。詳細は抽象に依存すべきです。

なぜ重要かというと、簡単に言うと、変更はリスクが高いからです。実装ではなく概念に依存することで、呼び出し側での変更の必要性を減らすことができるのです。

DIPは、異なるコード間の結合を効果的に低減します。例えば、ロギング機能を実装する方法はたくさんありますが、その使用方法は時間的に比較的安定しているはずだという考え方です。ロギングの概念を表すインターフェースを抽出できれば、このインターフェースは、その実装よりも時間的にはるかに安定しているはずで、呼び出しサイトは、そのロギングメカニズムを維持または拡張している間に行うことができる変更の影響をはるかに少なくするはずです。

また、実装をインターフェースに依存させることで、特定の環境に適した実装をランタイムに選択できる可能性があります。場合によっては、これも面白いかもしれません。