リスコフの置換原則とは
リスコフの置換原則(Liskov Substitution Principle, LSP)は、オブジェクト指向設計の基本原則の一つです。
C#で実際にクラスを設計する場合、どのように応用するかを具体例で見てみましょう。
1. LSPの原則とは
「サブクラス(派生クラス)は、スーパークラス(基底クラス)の代わりに使えるように設計すべき」
つまり、基底クラスを期待して書いたコードが、サブクラスでも問題なく動作する設計であることが重要です。
2. LSPに反した設計例(C#)
この設計では、Bird
型の変数で Penguin
を扱おうとすると、実行時に例外が発生します。
3. LSPに従った設計例(C#)
こうすることで、Bird
型の変数として扱っても 飛べないペンギンでもエラーが起きない 設計になります。
4. 実務での応用例
UIコンポーネント
-
Widget
型で扱っても、ボタンやテキストボックスは正しく描画されます。
決済システム
-
どの支払い方法でも
PaymentMethod
型で扱えるため、拡張が容易です。
5. まとめ
-
LSPを守ると安全に継承できる
-
サブクラスは基底クラスの契約(期待される動作)を壊してはいけない
-
C#では
abstract
クラスやvirtual/override
を上手く使い、サブクラスが安全に置換できるよう設計する
リスコフの置換原則を意識することで、変更に強く、保守性の高いオブジェクト指向設計を作ることができます。
コメント
コメントを投稿