ノートの端の書き残し

UnityやらC#やら。設計が得意かもしれない。

依存性逆転の原則

依存性逆転の原則の説明

基本的にこのように説明されます。 zenn.dev

クリーンアーキテクチャー本の記述の解釈としても間違っていないと思います。

何が嬉しいの?

この、インターフェースがどうのというのはあまり重要ではないです。手段なので。
大事なのは目的です。

安定依存の原則

依存性逆転の原則は、「抽象的なものは安定的である」という要素を組み込むことで漸く価値を理解できるものだと思います。
変更しやすいものに依存してしまうと、その変更の影響を、使用者側も受けてしまいます。
なので、依存は、より安定するものに向かわなくてはなりません。

クリーンアーキテクチャの同心円の図は割と誤解を与えがちなので最近はあまり引用されないようですが、例の図においても より中心に近い方が安定的なモジュール群、だから、外から内側に向かってだけ依存しましょう、という理解をするのが良いでしょう。

依存性逆転の原則は「手段」

目的が安定した方向への依存なのであれば、最初からより安定したクラスへの依存を抽象に置き換える必要なんて無いわけです。「原則」ではなく「手段」だと理解するべきでしょう。

(SOLID原則とかクリーンアーキテクチャとかの話はちゃんとボブおじさんの原典に詳しく書いてあるので、ネット上の記事だけではなく、ちゃんと原典書籍を読みましょう……!)