关于“状态”字段在页面显示的一次代码优化

1.问题描述前端

如图,很显然,订单状态,支付状态,这种由数字表示其语义的字段,是不该该这么直接显示到页面上,数据库

例如,0表明新订单,1表明已下单等等,所以咱们须要进行作一层处理。工具

 

 

 

 

 

2.关于流程spa

(1)从数据库查出数据3d

(2)在代码逻辑中进行对象的转换,PO对象转换为DTO对象,code

(3)前端拿到DTO对象,显示在页面对象

提示:使用枚举定义常量,对于订单状态,支付状态,都有相应的枚举类;blog

 

 

 

 

3.解决方案接口

第一次解决方案get

在好久之前也遇到过这种情况,可是项目里并无关于状态常量的定义类,所以在当时,我采用了一个最笨的办法;

在PO对象与DTO对象的转换时,也就是从PO对象get字段时,我对取出来的字段进行一层if else判断,

若是取出来的是“0”,那么存入DTO对象中为“新下单”,

不然取出来的是“1”,那么存入DTO对象中为“已完成订单”。。。。。。。。。。。。

这个操做,如今想一想有点傻傻的,哪怕不从代码可拓展性的角度来看,若是状态过多,有0,1,2,3,4,5。。。。。,天知道我要作多少个if else;

hahhh,可是只有经历过最傻的怎么写,才会有第二次解决方案,第三次解决方案。

第二次解决方案

此次的项目里使用枚举来进行常量的定义;

所以,想到了能够在枚举类中编写一个方法:经过code来获取到对应的枚举的方法;

 

 

问题:在哪里进行该方法的调用呢

在DTO类中进行该方法的调用;

为何呢?

由于天知道,其余地方还有没有使用这两个状态的了,若是有,岂不是还要从新再写一遍逻辑?所以把调用方法放在DTO类中,也就是根源上;

固然,在DTO类中只是进行一个枚举类方法的调用,由于DTO类中按照规范是不能够进行业务逻辑的处理的;

 

 

 

 

第三次解决方案

 问题:对于其余状态的枚举类,好比支付状态的枚举类,难道也要再写一个方法吗?这岂不是重复写代码吗?

所以,能够这样作;

将根据code获取对应的枚举的方法,再进行一次抽象,参数上能够指定枚举类,进行获取对应的枚举;

(1)定义一个接口,将两个枚举类实现这个接口

 

 

(2)编写工具类,写一个抽象的方法

 

 (3)在DTO中调用该方法

相关文章
相关标签/搜索