DIPとは
- みんな大好きSOLIDのD
- Dependency Inversion Principle
(依存関係逆転の原則) - 具象ではなく抽象に依存すると柔軟なシステムになるよ
どういうこと?
事例1-1
あるアプリケーションがユーティリティを使っている時、
アプリケーションはユーティリティに依存している状態。
事例1-2
この時、ユーティリティのインターフェイスを作って継承し、
アプリケーションからはこのインターフェイスを利用するようにしてみるとこうなる
事例1-3
作ったインターフェイスをアプリケーションのグループに入れ、
アプリケーション側が管理するよーとしてみる
事例1-4
なんということでしょう。
依存の方向が逆になっているではありませんか。
何がいいの?
- インターフェイスをどちら管理にするかだけで依存の方向を容易に変更できる
- 依存の方向を単方向に揃えることで、影響範囲や全体の構造がわかりやすくなり、さらに変化に強くなる。
事例2-1
事例2-2
まとめ
- DIPとはSOLIDのDで、抽象に依存するといいよというもの
- DIPを上手く使うことで依存の方向を管理できる
- これにより、単方向に依存したシステムを作れば複雑さと戦える