私はこれについての答えを見つけることができないと思うだけで、それはOK標準をコーディングしていることを確認したい。私は多くの異なるクラスで使用されているインターフェースAを持っていて、インターフェースAを変更したくないのです。私はインタフェースAを実装するクラスの多くが必要とする列挙型を必要とする新しい要件を見つけましたが、すべてのクラスがこの列挙型を必要とするわけではありません。私はこの新しいenumを必要としないクラスがこの新しい機能を実装することを望んでいません。そこで追加する必要があった新しい列挙型を含むインターフェイスBを作成しました。私は次にInterface B Inherit Interface Aを作成しました。これは私の心配です。あるインターフェースが別のインターフェースを継承しても大丈夫ですか?変更を続行するには、インタフェースBで継承されていたので、インタフェースAの代わりにインタフェースBを実装する必要があるクラスを変更しました。両方のインタフェースを必要とするクラスに実装することを考えましたが、コード全体のインターフェイスで、2つではなくクラスを調べるために1つのインターフェイスを使用したいと考えています。1つのインターフェイスが別のインターフェイスを継承する必要があります
私はこれが十分に長い(おそらく長い)ことを望みますが、誰かが私にこれについていくつかアドバイスを与えることができれば、私はそれを正しくやっているか間違っていると私に教えてください。
ありがとうございます!
私はもともとLiskov置換原則を適用することを提案しました。振り返ってみると、それは本当に関連性がありません。 LSPの要件の大部分(不変条件の維持、事前条件と事後条件の制限)は実際には具体的な実装にのみ適用でき、インタフェースには適用できません。それでも、代用性の一般的な原則は、引き続きインタフェースの継承の決定を導くべきです。 –
Liskovの置換原理:インタフェースBがインタフェースAを完全に置き換えることができることを確認することが重要です。そうしないと、実装しなければならない機能が不要になります。これにより、不要なコードが発生し、ソフトウェアの安定性が低下します。 –