依存関係の逆転の原理について学習しています。それはそれを述べています:
高レベルのモジュールは、低レベルのモジュールに依存するべきではありません。どちらも抽象化に依存する必要があります。
しばらく、私はそれが高レベルのコンポーネントと低レベルのコンポーネントの両方が抽象に依存し、それらに依存していることの意味を理解しようとしました。
どちらも同じ抽象化に何らかの形で依存する必要があると思います。これが間違っている場合は修正してください。
私はこれが何を意味するかについていくつかの結論に達しています。これが正しいかどうか確認してください。
「高レベルのコンポーネントは抽象化に依存しています」-意味:
高レベルコンポーネントは、具体的な低レベルコンポーネントと直接通信するのではなく、低レベルコンポーネントと通信するためにインターフェースと通信します。低レベルのコンポーネントはこのインターフェースを実装します。
「低レベルのコンポーネントは抽象化に依存しています」-意味:
低レベルのコンポーネントは、インターフェースの観点から定義および設計されています。それらはインターフェイスに合うように設計されています。それらは、インターフェースがそれらの設計方法を定義する方法で、インターフェースに依存しています。(多くの場合、低レベルのクラスがそのインターフェースを実装しています)。
このように、高レベルのコンポーネントと低レベルのコンポーネントはどちらも「抽象化に依存」していますが、方法は異なります。
これはよく理解していますか?