Скажем, у меня есть питомец класса, и он состоит из двух переменных:
Class Pet {
Category category; // be amphibian, fish, mammal, dog
Diet diet; //meat, vegetarian, omnivore
...
Если категория = собака, я хочу ограничить диету только всеядным животным (и наоборот). Моя настоящая проблема несколько сложнее, как лучше всего это кодировать? Я начал с вложенных перечислений, а затем с классом внутреннего строителя ...
Является ли это обычным делом, которое я могу использовать?