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