从什么时候开始,我们不再使用枚举

学习过任何一种高级语言的人,肯定都知道一种数据类型,枚举

那是一个很强大,也很实用的数据类型,但是,似乎从很早之前,就很少用了,或许说,是尽量避免去用了

为什么?


似乎是因为,MYSQL的枚举用法,存在一些坑(几年前的事了,似乎从我开始入程序猿这条路就开始了),然后我们就很少用了。


那我们现在思考下,我们为什么需要使用枚举

枚举是存在了一些固定选择的范围时,即一个有限的集合时,才会使用的,将集合中的所有元素列举出来,称为枚举。

这个集合绝大部分是String,当然,也不排除有其它的类型(包括复杂类型)。


那么,开发过程中哪些组件可以使用枚举,枚举又应该如何使用呢?


可以使用枚举的地方很多,JS,HTML(选择框的处理可能要借助JS要更好些),后台应用,数据库。

我其实很讨厌那种使用数字1代表什么,数字2代表什这样的数据库格式,包括传参格式,这样很讨厌,你必须还要知道这个枚举的对应关系,尤其是枚举多了,你要记住基本是不可能的。

那么,我们要怎么去处理枚举呢?

1、我们需要确认,我们的枚举值的名字,以及其代表的值

2、建议在各个系统,包括但不限于前端,后台,数据库,使用枚举定义其类型,名称全为大写的英文字母,以下划线分隔,至于值,可定义,也可不定义。

3、在传输过程中,建议使用枚举的名称,包括前端给后台传输数据,后台给前端返回数据,SQL的相关处理上


好处:

1、使用内部定义的类型,显示为String,实际内部处理基本上是固定值,减少一定的性能开销

2、开发人员,运维人员直接看数据库时,可以直接读懂,易读性提高

3、在数据处理过程中,减少数据转换的次数(0),降低因数据转换而造成的额外风险


不足:

1、改造量不确定,对于前端来说,其需要定义枚举类型,这方面改造量不确定,很难说。我不是做前端的,需要做相关的学习。后端的改造量也是不定的,对于现在Restful接口来说,Spring本身是否支持这种方式,不晓得,需要去看。数据库,后端同数据库之间的交互,是不是也需要改造?需要改造哪些,包括数据库的映射处理,myBatis是否支持。如果支持的话,哪些版本支持

2、接口改造,对于现有接口,如果改成这样的风格来说,必须会存在一定量的接口改造量。这一部分怎么处理,能否简化或其它的处理方式?还是说,老系统暂时不动,以后再说?


请期待,我的最新报告吧……

猜你喜欢

转载自blog.csdn.net/lengmohui668/article/details/80079272