私はアイテムのリストを宣言するモデル抽象クラスを持っています。抽象クラスには2つの抽象クラスがあります。リストに新しい項目を追加することができ、リストをまったく使用しない項目を追加することができますが、そうでなければモデル抽象クラスの他の動作に従います。この場合、LSP(Liskov置換)に違反することはできますか?
リストに項目を追加したり削除したりする2つの方法を宣言しました。明らかに、私がそれらのメソッドを使用したいときは、モデル抽象クラスをそのサブクラスにキャストする必要があります。
この場合、LSP (Liskov substitution principle)に違反することはできますか?または、この問題を回避する方法はありますか?
いくつかのコードを表示してください。それははるかに明確になります。 –
クラスの継承はここに行く方法ではないようです。継承は、基本クラスを透過的に派生クラスに置き換えることができれば、ほとんどの場合理にかなっています。 – helpermethod
Liskovの置換原則に違反することはほとんど決して良い考えではないので、これを正当化するためには本当に強い議論が必要です。 – Jesper