リスコフの置換原則:継承の真の意味

2025-01-22
リスコフの置換原則:継承の真の意味

この記事では、しばしば誤解されているSOLID原則の一つであるリスコフの置換原則(LSP)について詳しく解説します。古典的な長方形と正方形の問題を用いて、LSP違反の一般的なパターン、つまりサブタイプがベースタイプを完全に置換できないことを示します。著者は、LSP違反を回避するために、継承ではなくコンポジションとインターフェースを使用することを提唱し、支払い処理の実際的な例を示しています。予期しない例外の発生や、ベースタイプと矛盾する結果の返却など、一般的なLSP違反についても説明し、契約テストと明確な前/後条件を用いてLSPへの準拠を確保する方法を提示しています。最終的に、この記事はLSPが単なる継承以上のもの、つまり動作の互換性と期待値の充足に関わるものであることを強調しています。LSPに従うことで、より信頼性が高く保守しやすいコードを作成できます。