0
我在我的模型類中有一個枚舉,所以我不必擔心傳入它的錯誤值。在數據庫和GUI中使用模型代碼中的枚舉時減少代碼重複
我遇到的問題是,由於所述枚舉,我的代碼中有很多代碼重複。每當我想改變枚舉我也不得不改變我的代碼的這些部分,使整個事情的工作:
- 更改枚舉本身
- 更改SQL表定義(我使用MySQL枚舉)
- 更改enumToString轉換表在我的數據訪問層(我需要SQL查詢字符串)
- 變化在我的數據訪問層的stringToEnum轉換表(檢索到的值轉換回到正確的枚舉條目)
- 更改我的GUI的enumToPrettyString轉換表用法(顯示人類可讀的字符串,而不是存儲在一個數據庫中)
- 更改所有可用的枚舉項的列表,以便我可以填寫一個下拉框在我的GUI與所有可能的項供用戶選擇
我知道Javas Enum類更強大,你可以直接在枚舉入口定義中添加很多這些信息,但是C++枚舉在內部只是整數,所以我沒有那麼方便。
任何想法如何我可以儘量減少代碼重複?
你有*'兩個大枚舉* * - 好:(1)什麼意思是「大」:很多元素? (2)你的問題不是獨立於枚舉的數量:減少僅僅是一個枚舉不是更好嗎? – Wolf
你是對的,我將重新解釋這個問題,因爲兩個枚舉都是一樣的。 「大」意味着介於10到30個條目之間。 –
建議創建'DLL/.so',它將提取轉換的所有功能,並提供'DLL/.so'的客戶端所需的東西。通過這種方式,只有在枚舉/刪除/更改'enum'成員/條目時,'enum'定義纔會發生變化。 – sameerkn