У нас есть родительский класс
public class ParentClass
{
int GeneralVariable;
}
, затем производный класс (просто класс, содержащий информацию)
public class DerivedClassOne : ParentClass
{
int DerivedSpecificVariableOne;
}
, а затем другой производный класс (просто класс, содержащий информацию)
public class DerivedClassTwo : ParentClass
{
int DerivedSpecificVariableTwo;
}
Затем класс, который может "содержать" только один из этих 2 производных классов:
public class HousingClass : UnrelatedImportantClass
{
public void DoWorkingOnDerivedClasses(){}
}
Затем класс, который содержит все. HostClass будет вызывать методы HousingClass для выполнения работы над DerivedClass
public class HostClass
{
List<HousingClass> Housings = new List<HousingClass>();
}
В этом классе жилья я хотел бы иметь возможность "разместить" либо DerivedClassOne, либо DerivedClassTwo, а также иметь возможность "выполнять работу". «на любом из производных классов. В идеале, мне бы не хотелось иметь кучу перегруженных c -тор или методов с кучей переменных класса, определяющих разные производные классы. Прямо сейчас именно так выглядит класс «Жилье», и я предвижу, что он станет громоздким и его трудно поддерживать в ближайшем будущем.
В конечном счете, какой принцип дизайна мне нужен, и простой случай, на что это могло бы быть похоже? Прямо сейчас ParentClass не является абстрактным, но поможет ли это в том, что мне нужно?