Я пишу интерфейсы для нового проекта и хотел бы получить совет.
У меня есть класс, у которого есть подкласс, и у него есть подкласс. Дерево этого класса выглядит так:
Class Car
{
Wheels Wheel;
}
Class Wheels
{
Rims Rim;
}
Итак, чтобы упростить: одна машина имеет одно колесо, а одно колесо имеет один обод. (не могу придумать другой лучший пример, извините).
Итак, я хотел бы использовать эту иерархию в моей реализации интерфейса ICar, IWheels и IRims.
Итак, я сделал что-то вроде этого (в C #):
ICar
{
IWheels Wheel;
}
IWheels
{
IRims Rim;
}
И у меня есть ошибка, что я не могу иметь поля в реализации интерфейса. Так что это заставило меня задуматься о том, что, возможно, это неправильный дизайн интерфейса. Я хотел бы заставить реализации интерфейса реализовать такую иерархию. Но, может быть, в соответствии с шаблонами проектирования и лучшими практиками, это должно быть сделано по-другому?
Не могли бы вы сказать мне, как спроектировать мою систему, чтобы объекты были вынуждены реализовать такую иерархию?
Возможно, в моем вопросе что-то неточное, или я упустил какую-то важную информацию. Если да, пожалуйста, спрашивайте в комментариях.