LoginSignup
1
3

More than 3 years have passed since last update.

DIPについて復習

Last updated at Posted at 2019-11-13
1 / 12

DIPとは

  • みんな大好きSOLIDのD
  • Dependency Inversion Principle
    (依存関係逆転の原則)
  • 具象ではなく抽象に依存すると柔軟なシステムになるよ

どういうこと?


事例1-1

あるアプリケーションがユーティリティを使っている時、
アプリケーションはユーティリティに依存している状態。
dip1.png


事例1-2

この時、ユーティリティのインターフェイスを作って継承し、
アプリケーションからはこのインターフェイスを利用するようにしてみるとこうなる
dip2.png


事例1-3

作ったインターフェイスをアプリケーションのグループに入れ、
アプリケーション側が管理するよーとしてみる
dip3.png


事例1-4

なんということでしょう。
依存の方向が逆になっているではありませんか。
dip4.png


何がいいの?

  • インターフェイスをどちら管理にするかだけで依存の方向を容易に変更できる
  • 依存の方向を単方向に揃えることで、影響範囲や全体の構造がわかりやすくなり、さらに変化に強くなる。

事例2-1

双方向に依存した複雑なシステムも
dip5.png


事例2-2

分かりやすくて柔軟になる!!(適当なイメージです)
dip6.png


まとめ

  • DIPとはSOLIDのDで、抽象に依存するといいよというもの
  • DIPを上手く使うことで依存の方向を管理できる
    • これにより、単方向に依存したシステムを作れば複雑さと戦える

資料

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3