これは初心者の質問かもしれませんが、Wheel プロパティの複製を抽象クラスにリファクタリングしながら、Part タイプへの明示的なキャストを維持する標準的な方法はありますか? FastCarWheel が SlowCar に配置されないようにする必要があり、このようなプロパティが多数あるとします。
abstract class Car {}
class FastCar : Car
{
public FastCarWheel Wheel { get; set; }
}
class SlowCar : Car
{
public SlowCarWheel Wheel { get; set; }
}
abstract class WheelPart {}
class FastCarWheel: WheelPart {}
class SlowCarWheel: WheelPart {}
このタイプのシナリオでは、このタイプの重複を許可するのが一般的ですか? ジェネリックを利用することを考えていましたが、問題を動かしているように見え、このように動作する追加のプロパティごとに悪化します。
abstract class Car <P>
where P : Part
{
protected abstract P Wheel { get; set; }
}
ありがとう