我的项目中正在使用类型代码(即1,2,3(打开,关闭,未使用)),我想重构那部分代码。我是否应该按照重构改进现有代码的设计或仅使用枚举就足够了,将类型代码替换为类? C#是我的编程语言。
答案 0 :(得分:5)
根据您的描述,类型代码表示一组离散的选择,没有其他相关信息。因此,我建议使用enum
类型来替换整数表示。
答案 1 :(得分:1)
看起来像开放,封闭和未使用状态。如果是,那么我建议你使用状态设计模式。它可能看起来像创建更多的类,但代码将是可维护的。 你可以摆脱开关和if / else。
答案 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 }
}
这实际上取决于枚举的背景;一个非常具体的东西更有可能属于一个类,更通用的东西(并经常通过你的代码使用)在命名空间内更好。