未熟学生エンジニアのブログ

TetsuFeの個人開発ブログ

TetsuFeはテツエフイー と読みます。FlutterやWeb周り全般、チーム開発について語るブログ

11章 DIP 依存性逆転の原則 アジャイルソフトウェア開発の奥義

  • 抽象(抽象クラス・interface)に依存せよ
  • 再利用や拡張の可能性が低いものはDIPしなくて良い
  • 依存の方向は本来ならA use B なら A -> B。Bを変えるとAに影響が及ぶ。
  • 逆転させると、A use B は変わらないまま、 A <- B とできる。実際は、A -> インターフェース <- B 。抽象化されたインターフェースを介することで、AはBの知らなくていい部分の実装を知らなくてすむようにする。ということは、Bの実装が変わってもAには影響が及ばない。というより、影響が及ばないように実装するのだ
  • A <- B だとしても、Aが変更されたからといってBに影響が及ぶわけではない。その場合おそらく A does not use B なのだから。