Если вы действительно определили, что это правильный путь, я бы предложил написать генератор кода, который бы справился с вами: создайте документ CSV, содержащий все идентификаторы категории, и напишите приложение, которое вставляет каждый идентификатор.в заголовочные / исходные файлы шаблона и сохраняет его. (Например, поместите «$ CATEGORY_ID» в любом месте, куда указывается идентификатор категории в файлах, а затем просто замените «$ CATEGORY_ID» на каждый идентификатор по очереди.)
Однако я не уверен, что понимаю ваше утверждение: «Я рассмотрел вопрос об использовании примитива для хранения идентификатора, но я не хочу реализовывать проверку диапазона и генерировать исключения в случае, если идентификатор выходит издиапазон в основном потому, что идентификаторы категорий не являются частью одного и того же интервала. "Я не могу представить себе случай, когда вам все равно не пришлось бы обрабатывать сложности где-то в вашем приложении, и проверка диапазона не была бы сложной: просто поместите все действительные идентификаторы категории в структуру списка любого типа идентификатора.и простой вызов поиска по индексу может ответить, является ли идентификатор частью этого списка.
Если я вас неправильно понял, что именно в вашей настройке делает работу со 120 производными классами ItemCategoryBase проще, чем один базовый класс ItemCategoryBase, проверенный по списку идентификаторов?Вы говорите «главным образом потому, что идентификаторы категорий не являются частью одного и того же интервала», поэтому, возможно, проверка по списку даст вам то, что вам нужно.В противном случае, вы можете объяснить немного больше о том, как это работает?Хотя я понимаю, что всегда есть исключения, 120 классов, не делающих ничего, кроме предоставления разных идентификаторов, действительно поражают меня как то, что вряд ли будет решением, которое хорошо вам пригодится в долгосрочной перспективе.