有顺序要求的枚举设计
枚举在项目中的应用是比较常见的,当一个变量有几种固定取值时,就可以定义成一个枚举。
枚举通常会出现两种情况:无顺序枚举和有顺序枚举。
无顺序枚举一般用来做种类的区分:比如书籍种类,可以定义成小说(code:1)、散文(code:2)、诗歌(code:3)等,如果以后还想再添加种类,则继续code:4、5、6...添加下去即可。
有顺序的枚举在设计的时候就要注意了,比如一个申请单的审批流程:需要初审、复审、通过三个流程,如果在设计的时候定义为初审(code:1)、复审(code:2)、通过(code:3),这样看起来似乎没有问题,但是如果这时候业务要求再加一个终审的流程插在复审和通过之间,这时候总不能把终审定义为(code:2.5)吧!但是如果定义为(code:4),又觉得怪怪的,万一程序中判断申请单的状态是不是通过之前用code < 3那么可能还有意想不到的bug。
所以啊,建议在设计有顺序要求的枚举时,应该尽量把距离拉大一点,比如初审(code:10)、复审(code:20)、通过(code:30),这样一来,以后如果要加入终审这一业务要求,那么直接定义为code:25即可。
总而言之:设计做得好,码农少烦恼!如果你也踩过项目设计不好的坑,欢迎评论交流。
浙公网安备 33010602011771号