Я пытаюсь спроектировать объектную модель (для C #) и не могу найти лучший способ хранения данных. Я попытаюсь использовать простой пример, чтобы проиллюстрировать это!
У меня есть объект «pet», который может быть одним из «cat», «dog» и т. Д. Поэтому я создал класс «pet» с перечислением «petType» для его хранения.
Теперь это то, где это становится сложным. Если «домашнее животное» - это «кошка», то его «пищей» может быть «рыба», «молоко» и т. Д. Если это «собака», то его «пищей» могут быть «мясо», «печенье». или что-то.
Теперь я должен создать большое перечисление для "рыбы", "молока", "мяса" и "печенья" и каким-то образом закодировать его так, чтобы "кошке" нельзя было присвоить "food.meat"?
Для моего класса «домашнее животное» не имеет смысла иметь перечисление «catfood» и «dogfood», потому что оно не растяжимо, и в итоге будет храниться множество нулевых перечислений.
Есть ли элегантное решение, которого я не вижу?