键入Code vs Enum进行重构?

时间:2011-02-03 03:46:32

标签: c# enums refactoring

我的项目中正在使用类型代码(即1,2,3(打开,关闭,未使用)),我想重构那部分代码。我是否应该按照重构改进现有代码的设计或仅使用枚举就足够了,将类型代码替换为类? C#是我的编程语言。

4 个答案:

答案 0 :(得分:5)

根据您的描述,类型代码表示一组离散的选择,没有其他相关信息。因此,我建议使用enum类型来替换整数表示。

答案 1 :(得分:1)

看起来像开放,封闭和未使用状态。如果是,那么我建议你使用状态设计模式。它可能看起来像创建更多的类,但代码将是可维护的。 你可以摆脱开关和if / else。

http://www.blackwasp.co.uk/State.aspx

答案 2 :(得分:0)

如果你只想做最少量的工作,那么使用enum是“足够的”,但用类替换它会更好。

答案 3 :(得分:0)

重新审视Splendor建议的状态模式。我不喜欢GOF定义的State模式,因为它没有包含与状态转换操作有关的任何内容,也没有定义哪些状态转换是有效的。 IMO有更好的方法来管理状态而不是那种模式(但如果你没有,那么它绝对值得一读。)

要回答你的问题,我只会使用枚举。此时值得考虑名称空间。

您可以将枚举放入您的课程中。

public class Box
{
    public enum  BoxState { Open, Closed, Unused }
}

或直接进入命名空间:

namespace MyOrg.Enums
{
    public enum BoxState { Open, Closed, Unused }
}

这实际上取决于枚举的背景;一个非常具体的东西更有可能属于一个类,更通用的东西(并经常通过你的代码使用)在命名空间内更好。