C#の複製サブクラスプロパティへのアクセス-そこにある追加のソリューションアプローチを参照してください。
各オブジェクトに親があるオブジェクトモデルがあり、各オブジェクトの特定のタイプで親プロパティにアクセスしたいと思います。したがって、たとえばWheelはタイプCarの親プロパティを持つ必要があります。私の推測では、これを実現するための確立されたデザインパターンがあります(.NETで)。でも、見つけられなかったので、思いついたデザインはこんな感じ。
public class BaseObject<T> where T : BaseObject<T>
{
private T mParent;
protected T Parent
{
get { return mParent; }
}
public BaseObject(T parent)
{
mParent = parent;
}
public void Save() ...
public void Delete() ...
public BaseObject<T> Clone() ...
}
public class Car : BaseObject<Car>
{
public Car(Car parent) : base(parent)
{
}
public bool Is4WD()
{
return true;
}
}
public class Wheel : BaseObject<Car>
{
public Wheel(Car parent) : base(parent)
{
}
public float RequiredTirePressure()
{
return Parent.Is4WD() ? 3.0f : 2.5f;
}
}
このアプローチには、設計やパフォーマンスの欠点がありますか?より良いデザインをお勧めできますか?