LSP(The Liskov Substitution Principle)リスコフの置換原則
– 派生クラスは、その基底クラスと置換可能でなくてはならない。
参考:ここ
リスコフさんが提唱した、置換原則です。
置換するもの:親クラスと子クラス
この2つが置き換えることができなければならない。
よく、子クラスに親クラスをオーバーライドするのですが、
その時、親クラスの意図する動きをしなければならないということ。
LSP ありきの ODP
子クラスと親クラスが置き換え可能でないと、
そのクラスに依存するクラスの変更時、
子クラスor親クラスからの来たのかの条件文が必要となり、
変更が大変、浪費がかかる。
=拡張にしにくく、修正が多い
→ODP(オープン・クローズドの原則)に反している。