6 つの異なるが類似したタイプをモデル化するアプリケーションのクラスを構築するためのアドバイスが必要です。6 つのタイプには、すべてが共有するいくつかのプロパティとメソッドがあります。また、3 つ、4 つ、または 5 つのプロパティとメソッドが共有するが、他のものには意味を持たないプロパティとメソッドもあります。
現在、次の抽象基本クラスがあります。
- すべてのサブクラスが使用するプロパティとメソッドは、既に実装されています。
- 一部のサブクラスが使用するメソッドは、サブクラスで実装される抽象としてマークされます。
- 一部のサブクラスが使用するプロパティは、null 許容としてマークされているため、プロパティが使用されないサブクラスは null になる可能性があります。
ただし、これは最善の解決策とは思えません。十分な詳細を提供したように感じますが、これが意味をなさない場合はお知らせください。より良い説明を提供できるように努めます。
編集 -- コード例の追加
public abstract class BaseClass
{
//all classes inheriting from BaseClass would use these properties
public string Property1{ get; set; }
public string Property2{ get; set; }
public void Method1() {
//all classes inheriting from BaseClass would use this method
}
//more than one class (but not all classes)
// inheriting from BaseClass would use these properties
public int? Property3 { get; set; }
public bool? Propert4 { get; set; }
public abstract void Method2() {
//more than one class (but not all classes)
// inheriting from BaseClass would use this method
//those not using this method would have empty getters and setters maybe?
}
}