SOLID 原則の解明 — (I)

Apr 17 2023
インターフェース分離の原則
インターフェイスは、クラスがサポートしていない機能をクラスに実装することを強制してはなりません。つまり、サポートを提供するために、大きなインターフェイスを小さなインターフェイスに分割する必要があります。サンプル シナリオ 同じシナリオを AreaCalculator クラスで使用して、それに新しい機能を追加してみましょう。

インターフェイスは、クラスがサポートしていない機能をクラスに実装することを強制してはなりません。つまり、サポートを提供するために、大きなインターフェイスを小さなインターフェイスに分割する必要があります。

サンプルシナリオ

同じシナリオをAreaCalculatorクラスで使用して、新しい機能を追加してみましょう。今回は、立方体、直方体などの形状の体積の合計が必要です。

下手な書き方

作成する形状はボリュームメソッドを実装する必要がありますが、正方形は平らな形状であり、ボリュームがないことがわかっているため、このインターフェイスは、Squareクラスが使用しないメソッドを強制的に実装することになります。

これは、インターフェイス分離の原則に違反しています。

よく書かれました

この違反を修正するには、IShape3D という新しいインターフェイスを作成してボリュームのある形状を処理し、2D 形状を処理するために IShape インターフェイスを維持する必要があります。

主な利点

  1. 高い結束性 — 理解のしやすさと堅牢性が向上します。
  2. 低結合 — 保守性が向上し、変更に対する耐性が高くなります。
  3. クラスは、使用しないインターフェイスの実装を強制されません。