Я недавно закончил работу над средством просмотра молекулярных / белковых данных для класса компьютерной графики.Атомы, очевидно, очень важная часть такой программы.В настоящее время у меня есть большое перечисление, которое содержит каждый элемент (водород, гелий и т. Д.).Каждый элемент имеет связанную информацию, такую как цвет, радиус и т. Д. Я использую класс расширения, чтобы я мог написать:
float r = Element.Neon.Radius();
Мне также нужно иметь возможность получить соответствующее перечисление из его символа.Я вставил этот метод в класс расширения, который немного запутан:
Element carbon = ElementExtensions.FromAbbreviation("C");
Я хочу связать намного больше данных с конкретными записями Элемента, но я не уверен, является ли это хорошим дизайном или нет.В настоящее время каждый набор связанных данных требует словаря для получения связанных данных.Возможно, я мог бы использовать Dictionar?
Если бы я пошел с классом Element, мне нужно было бы убедиться, что есть только один экземпляр водорода, один из гелия и т. Д. Мне нравится, как выглядит System.Drawing.Colorразработан, но я не думаю, что это именно то, что мне нужно (например, вам никогда не придется искать связанные данные для ForestGreen).
Какой лучший способ поддержки больших, но четко определенныхи конечное число конкретных экземпляров?