Ich modelliere ein chemisches System und habe Probleme mit der Benennung meiner Elemente / Gegenstände innerhalb einer Aufzählung.
Ich bin mir nicht sicher, ob ich verwenden soll:
- die Atomformel
- der chemische Name
- ein abgekürzter chemischer Name.
Beispielsweise ist Schwefelsäure H 2 SO 4 und Salzsäure ist HCl.
Bei diesen beiden würde ich wahrscheinlich nur die Atomformel verwenden, da sie ziemlich häufig sind.
Ich habe jedoch andere wie Natriumhexafluorsilicat, das Na2SiF6 ist.
In diesem Beispiel ist die atomare Formel nicht so offensichtlich (für mich) , aber der chemische Name ist abscheulich lang: myEnum.SodiumHexaFluoroSilicate
. Ich bin mir nicht sicher, wie ich in der Lage sein könnte, einen abgekürzten chemischen Namen zu finden, der ein einheitliches Namensmuster aufweist.
Es gibt einige Probleme, die ich durch die Benennung der Enum-Elemente beheben möchte.
Die erste ist die Lesbarkeit, wobei die längeren Namen ein Problem darstellen.
Die zweite ist, dass es für neue Betreuer einfach ist, den Code zu finden, und hier stellen die kürzeren Namen ein Problem dar.
Das nächste Problem ist, dass Geschäftsinhaber normalerweise auf den vollständigen chemischen Namen verweisen, aber nicht immer. Die "Bissen" -Chemikalien werden durch ihre Formel bezeichnet.
Das letzte Anliegen ist es, sicherzustellen, dass es konsistent ist. Ich bin keine gemischte Namenskonvention, da es unmöglich sein wird, sich zu erinnern, welche ich verwenden soll.
Welche der oben genannten Benennungsoptionen würden Sie unter Wartungsgesichtspunkten bevorzugen und warum?
Hinweis: Alles, was hier unter der Zeile steht, ist eine Ergänzung klärendes Material. Bitte lassen Sie sich nicht darin festsitzen. Die Hauptfrage betrifft die Benennung der umständlichen Objekte.
Atomic Option
public myEnum.ChemTypes { H2SO4, HCl, Na2SiF6 }
Chemische Namensoption
public myEnum.ChemTypes { Schwefelsäure, Salzsäure, NatriumHexafluorsilikat }
Hier sind einige zusätzliche Details aus den Kommentaren zu dieser Frage:
- Das Publikum für den Code wird nur Programmierer sein, keine Chemiker.
- Ich verwende C #, finde diese Frage aber interessanter, wenn ich die Implementierungssprache ignoriere.
- Ich beginne mit 10 - 20 Verbindungen und würde höchstens 100 Verbindungen haben, so dass ich mich nicht um jede mögliche Verbindung kümmern muss . Zum Glück ist es eine feste Domäne.
Die Aufzählung wird als Schlüssel für Suchvorgänge verwendet, um allgemeine chemische Berechnungen zu vereinfachen. Dies bedeutet, dass die Gleichung für alle Verbindungen gleich ist, Sie jedoch eine Eigenschaft der Verbindung einfügen, um die Gleichung zu vervollständigen.
- Zum Beispiel wird die Molmasse (in g / mol) verwendet, wenn die Molzahl aus einer Masse (in Gramm) der Verbindung berechnet wird. FWIW, Molmasse == Molgewicht.
- Ein weiteres Beispiel für eine gängige Berechnung ist das Ideale Gasgesetz und dessen Verwendung der Spezifischen Gaskonstante
Eine Beispielfunktion könnte folgendermaßen aussehen:
public double GetMolesFromMass (double mass_grams, myEnum.ChemTypes chem) { double molarWeight = MolarWeightLookupFunctionByChem (chem); // gibt Gramm / Mol zurück Doppelmole = Masse / MolGewicht; // konvertiert in Maulwürfe Muttermale zurückgeben; } // Beispielanruf: myMoles = GetMolesFromMass (1000, myEnum.ChemTypes.Na2SiF6); //*oder* myMoles = GetMolesFromMass (1000, myEnum.ChemTypes.SodiumHexafluorosilicate);
public double GetSpecificGravity (myEnum.ChemTypes chem, double conc) { // Ermittelt das spezifische Gewicht der chemischen Verbindung basierend auf der Konzentration double sg = SpecificGravityLookupTableByChem (chem, conc); }
Die Aufzählung des Verbindungsnamens wird daher als Schlüssel verwendet, um eine konsistente Referenzierung der Verbindung mit den zugehörigen Funktionen zu gewährleisten.
Substance
mit den Eigenschaften, die sie benötigen.