Вот ситуация, для которой я пытаюсь найти подходящий дизайн.
Мне нужно хранить профили номеров. Профиль - это просто серия чисел. Они могут иметь тип int, float или десятичный тип. Каждый профиль имеет поле ProfileDescription, основанное на нумерации.
Каждый профиль имеет коллекцию объектов ProfileVersion. Каждый объект ProfileVersion имеет коллекцию объектов ProfileValue. Эти объекты ProfileValue хранят фактические числовые значения требуемого типа.
Моя первоначальная идея заключалась в том, чтобы сделать Profile, ProfileVersion и ProfileValue общими. Я сталкиваюсь с проблемой, когда хочу иметь список профилей разных типов, которых у меня не может быть. Вместо этого я мог бы использовать ArrayList, но тогда мне пришлось бы преобразовать данные в нем.
Хотя я мог бы сделать общие ProfileVersion и ProfileValue универсальными, а затем заставить объект профиля назначать тип ProfileVersion в зависимости от значения поля ProfileDescription, но я не могу найти способ сделать это.
Еще одна мысль заключалась в том, что мне следует использовать класс ProfileBase, а затем создать его подкласс с помощью GenericProfileClass или IntProfile, FloatProfile и DecimalProfile, но это на самом деле не даст мне никакого преимущества по сравнению с тем, чтобы каждый класс был универсальным, как я должен был бы привести в любом случае, каждый раз из подкласса.
Буду признателен за ваши мысли о наилучшем подходе к дизайну в этой ситуации.
Спасибо