我最近完成了計算機圖形類的分子/蛋白質查看器的工作。原子顯然是這樣一個計劃的一個非常重要的部分。目前,我有一個包含每個元素(氫,氦等)的大枚舉。每個元素都有相關的信息,如顏色,半徑等我使用的是擴展類,所以我可以這樣寫:正確的大型枚舉設計
float r = Element.Neon.Radius();
我還需要能夠得到相應的枚舉從它的符號。我卡在擴展類方法,這是一個有點亂:
Element carbon = ElementExtensions.FromAbbreviation("C");
我想與特定元素條目更大量的數據關聯起來,但我不知道這是否是一個好的設計或沒有。目前,每組相關數據都需要一個字典來獲取相關數據。也許我可以使用Dictionar?
如果我去了一個Element類,我需要確保只有一個氫的實例,一個氦氣等。我喜歡System.Drawing.Color的設計方式,但我不認爲這正是我需要什麼(例如,你永遠不必查找ForestGreen的相關數據)。
什麼是最好的方式來支持一個大的,但明確定義和有限數量的特定實例?
要麼是具有某種默認邏輯的抽象類,要麼是一個接口。 – Carra 2011-12-14 08:55:04
我認爲這將是最好的方式,因爲我記得我的化學類有元素週期表中相似的元素組。他們應該在這種情況下共享相同的基類 – 2011-12-14 09:01:05
我花了一半的時間在Java中,他們的枚舉版本更像這樣...這是我想表達的模式 – colithium 2011-12-14 09:55:46