美文网首页程序员
借助枚举说一下数据类型定义规范

借助枚举说一下数据类型定义规范

作者: buguge | 来源:发表于2018-09-04 10:44 被阅读169次
《代码整洁之道》第1章:整洁代码

Java是一种强类型语言。通俗说就是,在Java中存储的数据都是有类型的,而且必须在编译时就确定其类型。
编程规范里,也强调数据要有明确的数据类型。这样会让代码变得很清晰,而且会规避不必要的麻烦。
通常在没有特殊需要的情况下,时间就用Date类型、字符就用char、是/否就用bool、数字就用数值类型。每种数据类型都有其可存储的数据和限定的取值范围。不要什么都用object,什么都用String,灵活自由往往会带来更多隐患。红灯亮了,你还想自由自在的穿过马路,也许红绿灯的倒计时就是生命的倒计时。

本系列的主题是讨论枚举的使用规范。那么,我们看下面代码截图,

bad code

上面截图中所调用的方法updateRpmOrderStatus有4个参数,类型都是String。这个方法的作用是变更订单的支付状态。4个参数分别是新的支付状态、订单支付日期、订单号、原支付状态。其中,订单支付日期和订单号是表的主键,唯一决定一条记录,原支付状态是为了乐观锁的控制。

/**
 * 更新订单状态
 * @param createDate  订单创建日期
 * @param orderNo   订单号
 * @param status    需更新的下一个状态
 * @param processStatus  当前状态
 * @return
 */
public int updateRpmOrderStatus( String status, String createDate, String orderNo, String processStatus) {
    return rpmOrdMapper.updateRpmOrderStatus(status, createDate, orderNo,  processStatus);
}

上面截图里是调用该方法时的语句如下,因为开发时不小心搞错了传参的顺序而导致了BUG。

int update = rpmOrdService.updateRpmOrderStatus(reqBO.getCreDt(), reqBO.getOrderNo(),
    OrdStsEnum.D_CLOSED.getSts(), rpmOrder.getOrdSts());

参数类型是String,传的也是String,编译没问题,但是逻辑错了。

如果把第一个参数“新的支付状态”重(限)构(定)为枚举类型,就不会出现这样的BUG了。
重构后代码截图如下,注意我把status重命名为newStatus了。

refactor

相关文章

  • 借助枚举说一下数据类型定义规范

    Java是一种强类型语言。通俗说就是,在Java中存储的数据都是有类型的,而且必须在编译时就确定其类型。编程规范里...

  • iOS中Swift从开始入门到最后的放弃(六),

    # Swift枚举 枚举是由用户定义的数据类型的一组相关值。关键字 `enum` 用来定义枚举数据类型。 ###枚...

  • iOS - 枚举(Enum)

    枚举(Enum) 枚举(Enum)是C语言中的一种基本数据类型,是一个"被命名的整型常量"的集合 规范的定义代码中...

  • 枚举

    枚举 枚举就是专门用来表示几种固定类型的取值 枚举的本质就是基本数据类型,整型 枚举类型定义格式 定义枚举类型变量...

  • 深入分析 Java 的枚举 enum

    1 定义 enum全称为enumeration,中文意为枚举,枚举简单的说就是一种数据类型,只不过是这种数据类型只...

  • 枚举

    枚举数据自定义的数据类型(元组)枚举语法:enum 枚举名称{case 名称case 名称...}

  • C++学习笔记(二)

    1 数据类型 枚举类型枚举类型枚举类型(enumeration)是C++中的一种派生数据类型,它是由用户定义的若干...

  • SpringBoot枚举转化代码项统一解决方案

    定义结构及接口 规范化枚举定义 定义枚举包含name和value字段,实现枚举转换接口,返回代码项名称 扫描转换枚...

  • 关于项目中的枚举类型使用的规范化

    问题背景 公司中对枚举的使用规范(姑且称为规范吧)是对枚举定义一个int类型的code成员变量,同时定义配套的co...

  • TS 数据类型及使用

    数据类型 定义数据类型 定义数组 定义元组类型 定义枚举类型 常用来表示一个事物的状态, 比如:成功或者失败 an...

网友评论

    本文标题:借助枚举说一下数据类型定义规范

    本文链接:https://www.haomeiwen.com/subject/jrqgwftx.html