インターフェース分離の原則 とは?
インターフェース分離の原則(Interface Segregation Principle, ISP)とは、SOLID原則の一つであり、「クライアントが利用しないメソッドへの依存を強制すべきではない」という考え方です。つまり、大きなインターフェースをより具体的で細かなインターフェースに分割して、クライアントが必要な機能だけを利用できるようにすることを推奨しています。なぜ インターフェース分離の原則 が重要なのか?
巨大なインターフェースに依存すると、以下のような問題が発生します。- 利用しないメソッドの実装を強制される。
- 変更の影響範囲が広がり、保守性が低下する。
- クラス間の結合度が上がり、柔軟性が損なわれる。
解説
以下はISP適用前後のシンプルな例です。修正前のコード
問題点
- OldPrinterクラスでは不要なメソッド(
scan_document,fax_document)の実装を強制されている。 - 実行時にエラーを起こす可能性があり、コードが安全ではない。
修正後のコード
解決された問題
- 各クラスが必要最小限のインターフェースだけに依存するようになりました。
- 不要なメソッドを実装する必要がなくなり、安全性が向上しました。