2011-02-03 64 views
1

我的项目中使用了类型代码(即1,2,3(open,close,unused)),我想重构那部分代码。我是否应该按照中提到的方法遵循替换类型代码重构提高现有代码的设计或仅使用枚举就足够了? C#是我的编程语言。类型代码vs枚举重构?

回答

5

从您所描述的内容中,类型代码表示一组离散的选项,其中没有其他相关信息。因此,我建议使用enum类型来替换积分表示。

0

如果你只想做最小的工作量,使用枚举是“充分的”,但用类替换它会更好。

1

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

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

+0

+1对于不同的宏观设计建议,即使这可能是矫枉过正/不相关的。 – 2011-02-03 05:27:16

0

再由蝶舞建议国家模式。我不喜欢GOF定义的状态模式,因为它没有包含任何与状态转换相关的操作,也没有定义什么状态转换是有效的。国际海事组织有更好的方法来管理状态比这种模式(然而,如果你没有,它绝对值得阅读模式)。

要回答你的问题,我只是使用枚举。这一点值得考虑命名空间。

您可以将枚举放入您的类中。

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

或直接进入一个命名空间:

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

这真的取决于枚举的背景下;非常特定的东西更可能属于类内部,更通用的东西(并且在代码中经常使用)在名称空间内更好。