私は、親クラスまたはインターフェースと、親から継承するか、インターフェースを実装する2つの子クラスを持っていて、親に共通のプロパティーを持っていますが、各子ごとに異なるプロパティーがあります。親クラス/インターフェース内のすべてのプロパティを収集するか、それらを分離する必要がありますか?親クラスの順応
abstract class Customer
{
string name { get; set; }
}
class GoldCustomer : Customer
{
string Address { get; set;}
}
class SilverCustomer : Customer
{
string Telephone { get; set;}
}
私はその後、それらを分離し、子を指している親からの参照を作成した場合、私は、分離子プロパティ
Customer c = new GoldCustomer();
c.Address // error
より正確なアーキテクチャである
なくどんなデザインに違反にアクセスすることはできませんパターン?代わりに、継承を使用しての
abstract class Customer
{
string name { get; set; }
string Address { get; set;}
string Telephone { get; set;}
}
class GoldCustomer : Customer
{
}
class SilverCustomer : Customer
{
}
Customer c = new GoldCustomer();
c.Address = "";
正確な状況によって異なります。 Liskov Substitution Principle(https://en.wikipedia.org/wiki/Liskov_substitution_principle)に違反する必要がないような方法でクラスを設計することが難しい場合は、継承(https:// en .wikipedia.org/wiki/Composition_over_inheritance) – itsme86
これはあまりにも幅広い質問であり、itsme86が述べたように、それは特定の状況に依存します。両方のaproachesは正しいかもしれません、それは本当にあなたがしたいことに依存しています。あなたが実際に必要とするものを前もって考えてみて、あなたが不必要な依存関係を作っていないようにしてください。 – CrudaLilium