Clean Architecture Part III ch10 ISP: The Interface Segregation Principle

Clean Architectureデザインパターン勉強メモ

出典: 

ISP: The Interface Segregation Principle

  • インタフェース分ける前
  • SRPに則ってない

    • User1はop1だけ利用
    • User2はop2だけ利用
    • User3はip3だけ利用
  • op1に変更を加えるだけで全クラス再コンパイル必要
  • solution: インタフェース切る
  • インタフェース分けた後
  • OPSクラスのop1()に変更を加えても、再コンパイルはOPSクラスのみ

    • User1さえ影響を受けない

ISP and Language

  • 前述の説明は、言語の種類による

    • 静的型付け言語の場合は前述の通り
    • 動的型付け

      • 「宣言」はなく、推論される
      • 再コンパイルや再デプロイはない
      • 静的型付けよりも柔軟で、結合が疎

ISP and Architecture

  • モジュール間の不必要な依存は良くない

    • 本来不要な再コンパイル・再デプロイが必要になる
    • OCPでも論じたこと
  • より高水準の、アーキテクチャについても同様のことがいえる

Conclusion

  • 余計なものに依存すると、予期せぬトラブルに見舞われる

    • 必要なものだけインタフェースに切り出せ

英語

  • lurk

    • 潜む