화학 시스템을 모델링하고 있으며 열거 형 내에서 요소 / 항목의 이름을 지정하는 데 문제가 있습니다.
내가 사용 해야하는지 확실하지 않습니다.
- 원 자식
- 화학명
- 약칭 화학명.
예를 들어, 황산은 H2SO4이고 염산은 HCl입니다.
이 두 가지를 사용하면 원자 공식이 합리적으로 일반적이기 때문에 아마도 아마도 원자 공식을 사용할 것입니다.
그러나 Na2SiF6 인 나트륨 헥사 플루오로 실리케이트와 같은 다른 제품이 있습니다.
이 예에서 원자 공식은 나에게 명백하지 않지만 화학 이름은 엄청나게 길다 myEnum.SodiumHexaFluoroSilicate
. 일관된 이름 지정 패턴을 갖는 약칭 화학 이름을 어떻게 안전하게 얻을 수 있는지 잘 모르겠습니다.
열거 형 요소의 이름을 지정하여 해결하려는 몇 가지 문제가 있습니다.
첫 번째는 가독성이며 긴 이름은 문제를 나타냅니다.
두 번째는 새로운 관리자를위한 코드를 쉽게 찾을 수있는 것입니다. 여기서 짧은 이름은 문제를 나타냅니다.
다음 문제는 비즈니스 소유자가 일반적으로 전체 화학명을 언급하지만 항상 그런 것은 아닙니다. "중대한"화학 물질은 그들의 공식에 의해 언급됩니다.
마지막 관심사는 일관성을 유지하는 것입니다. 사용할 이름을 기억하는 것이 불가능하기 때문에 혼합 명명 규칙을 원하지 않습니다 .
유지 관리 관점에서, 위의 명명 옵션 중 어떤 것을 선호하고 왜 그 이유를 알고 싶습니까?
참고 :이 줄 아래에있는 모든 내용은 보충적입니다. 명확한 재료. 그 속에 갇히지 마십시오. 주요 질문은 어색한 객체의 이름을 지정하는 것과 관련이 있습니다.
원자 옵션
공개 myEnum.ChemTypes { H2SO4, HCl, Na2SiF6 }
화학 물질 이름 옵션
공개 myEnum.ChemTypes { 황산, 염산, 나트륨 헥사 플루오로 실리케이트 }
이 질문에 대한 의견의 추가 세부 정보는 다음과 같습니다.
- 코드의 대상은 화학자가 아닌 프로그래머 일뿐 입니다.
- C #을 사용하고 있지만 구현 언어를 무시할 때이 질문이 더 흥미 롭습니다.
- 저는 10-20 개의 화합물로 시작하고 최대 100 개의 화합물을 가지므로 가능한 모든 화합물 에 대해 걱정할 필요가 없습니다 . 다행히도 고정 도메인입니다.
열거 형은 일반적인 / 일반적인 화학 계산을 용이하게하기 위해 조회의 열쇠로 사용됩니다. 즉, 모든 화합물에 대해 방정식이 동일하지만 방정식을 완성하기 위해 화합물의 속성을 삽입합니다.
- 예를 들어, 몰 질량 (g / mol)은 화합물의 질량 (g)으로부터 몰 수를 계산할 때 사용된다. FWIW, 몰 질량 == 몰 중량.
- 일반적인 계산의 또 다른 예는 이상적인 가스 법칙 과 특정 가스 상수 의 사용입니다
샘플 함수는 다음과 같습니다.
공개 double GetMolesFromMass (더블 질량 _ 그램, myEnum.ChemTypes 화학) { 이중 분자량 = MolarWeightLookupFyctionByChem (chem); // 그램 / 몰을 반환 이중 몰 = 질량 / 몰 무게; // 두더지로 변환 반점; } // 샘플 호출 : myMoles = GetMolesFromMass (1000, myEnum.ChemTypes.Na2SiF6); //*또는* myMoles = GetMolesFromMass (1000, myEnum.ChemTypes.SodiumHexafluorosilicate);
공공 이중 GetSpecificGravity (myEnum.ChemTypes 화학, 이중 광) { // 농도에 따라 화합물의 비중을 구합니다 이중 sg = SpecificGravityLookupTableByChem (chem, conc); }
따라서 화합물 이름의 열거 형은 키로 사용되며 관련 기능과 함께 화합물을 참조 할 때 일관성을 제공합니다.
Substance
필요한 속성 이있는 인스턴스 여야 합니다.