我们的项目中有一段臭代码。业务逻辑中使用的许多值有两个存储位置: 我们在数据库中有字典表(用于 FK 关系),我们在其中存储值 e.x. 消息方向信息:
0|未知
1|在
2|出局
并且我们有具有完全相同数据的枚举: MessageDirectionEnum{Unknown=0,In=1,Out=2} 在整个代码中,我们有很多“开关”和“如果”,其中枚举用于条件逻辑。但是当我们保存到数据库时——我们应该“转换”(实际上是“盲选”,如果它选择除了结果对象类型之外完全相同的数据)枚举值到 Dictionary 类实例。我能理解 Enums 是用来清除外键引用的代码逻辑和 DB 数据,但实际上我不喜欢这样。
有没有什么模式可以消除这种行为,或者有什么方法可以清除这种“臭味”?或者也许我只是瞎了眼,这是获得这两种好处的唯一明确方法 - DB FK 和使用枚举的更清晰的代码逻辑
最佳答案
保留表格但用类替换枚举...? http://www.refactoring.com/catalog/replaceTypeCodeWithClass.html
关于database - 是否有任何模式或重构技巧来拆分 Enum 和 DBDictionary 数据重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/446221/