Clean Architecture Part III ch10 ISP: The Interface Segregation Principle
ISP: The Interface Segregation Principle
- SRPに則ってない
- User1はop1だけ利用
- User2はop2だけ利用
- User3はip3だけ利用
- op1に変更を加えるだけで全クラス再コンパイル必要
- solution: インタフェース切る
- OPSクラスの
op1()
に変更を加えても、再コンパイルはOPSクラスのみ- User1さえ影響を受けない
ISP and Language
- 前述の説明は、言語の種類による
- 静的型付け言語の場合は前述の通り
- 動的型付け
- 「宣言」はなく、推論される
- 再コンパイルや再デプロイはない
- 静的型付けよりも柔軟で、結合が疎
ISP and Architecture
Conclusion
- 余計なものに依存すると、予期せぬトラブルに見舞われる
- 必要なものだけインタフェースに切り出せ
英語
- lurk
- 潜む