勉強日記

チラ裏

Clean Architecture Part III ch10 ISP: The Interface Segregation Principle

www.pearson.com


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
    • 潜む