Я моделирую химическую систему, и у меня возникают проблемы с именованием моих элементов / элементов в перечислении.
Я не уверен, должен ли я использовать:
- атомная формула
- химическое название
- сокращенное химическое название.
Например, серная кислота представляет собой H2SO4, а соляная кислота представляет собой HCl.
С этими двумя я, вероятно, просто использовал бы атомарную формулу, поскольку они достаточно распространены.
Тем не менее, у меня есть другие, такие как гексафторсиликат натрия, который является Na2SiF6.
В этом примере, атомная формула не столь очевидна (для меня) , но химическое название безобразно долго: myEnum.SodiumHexaFluoroSilicate
. Я не уверен, как я смогу безопасно придумать сокращенное химическое название, которое будет иметь последовательную схему именования.
Есть несколько проблем, которые я пытаюсь решить, называя элементы enum.
Первый - это удобочитаемость, более длинные имена представляют проблему.
Второе - простота выбора кода для новых сопровождающих, и здесь короткие имена представляют проблему.
Следующая проблема заключается в том, что владельцы бизнеса обычно ссылаются на полное химическое название, но не всегда. «Глотательные» химические вещества обозначаются их формулой.
Последнее беспокойство - убедиться, что оно соответствует. Я не хочу смешанного соглашения об именах, так как невозможно будет вспомнить, какой использовать.
С точки зрения обслуживания, какой из перечисленных выше вариантов имен вы бы предпочли увидеть и почему?
Примечание: все, что ниже строки, является дополнительным | уточняющий материал. Пожалуйста, не увязай в этом. Основной вопрос касается имен неудобных объектов.
Атомный вариант
public myEnum.ChemTypes { H2SO4, HCl, Na2SiF6 }
Опция химического названия
public myEnum.ChemTypes { Серная кислота, Соляная кислота, SodiumHexafluorosilicate }
Вот некоторые дополнительные детали из комментариев к этому вопросу:
- Аудитория для кода будет только программисты, а не химики.
- Я использую C #, но я думаю, что этот вопрос более интересен, если игнорировать язык реализации.
- Я начинаю с 10 - 20 соединений и буду иметь не более 100 соединений, поэтому мне не нужно беспокоиться о всех возможных соединениях. К счастью, это фиксированный домен.
Перечисление используется в качестве ключа для поиска, чтобы упростить общие / общие химические вычисления - это означает, что уравнение одинаково для всех соединений, но вы вводите свойство соединения для завершения уравнения.
- Например, молярная масса (в г / моль) используется при расчете количества молей из массы (в граммах) соединения. FWIW, Молярная масса == Молярная масса.
- Другим примером общего расчета является закон идеального газа и его использование удельной газовой постоянной
Пример функции может выглядеть так:
public double GetMolesFromMass (double mass_grams, myEnum.ChemTypes chem) { double molarWeight = MolarWeightLookupFunctionByChem (chem); // возвращает грамм / моль двойные родинки = масса / молярный вес; // конвертируется в родинки возвратные родинки; } // Пример вызова: myMoles = GetMolesFromMass (1000, myEnum.ChemTypes.Na2SiF6); //*или* myMoles = GetMolesFromMass (1000, myEnum.ChemTypes.SodiumHexafluorosilicate);
public double GetSpecificGravity (myEnum.ChemTypes chem, double conc) { // извлекает удельный вес химического соединения на основе концентрации double sg = SpecificGravityLookupTableByChem (chem, conc); }
Таким образом, перечисление составного имени используется в качестве ключа и для обеспечения согласованности в отношении соединения с соответствующими функциями.
Substance
с какими-либо необходимыми им свойствами.