代码中的魔鬼数字

什么是魔鬼数字

魔鬼数字的定义:在代码中没有具体含义的数字、字符串。

例子:
直接使用数字,谁知道这个3是什么意思?

if (user.getStatus() != 3)
{
	System.out.println(1);
}

缺点

1、代码可读性差。
2、可维护性差。
3、容易出错。 例如0,1两个状态,一不小心就记错了。

解决方案

定义为常量

对于不经常改变的值,这样确实很有效。例如一年四季,星期几等。

但用来标记每个字段其实也不是很好:
1、变量名会很长,如: 表名_字段名_某个值 ,写到代码里面也不清爽。
2、每个字段可能有很多状态,光编写常量这项工作就很繁琐。 需要写很多代码。

例如: 订单支付状态-未支付
ORDER_PAYSTATUS_UNPAID = 0

直接使用数字+ 查看字段注释

弱弱的问一句,谁的项目里面完全没有使用数字状态? 至少我见过的项目里面,多多少少都有使用。

这种用法虽然比较初级,但是操作性其实还可以:
1、直接使用数字代码,虽然难懂,但是有字段注释配合,基本也能明白什么含义。
2、代码很简短。 (单数字肯定比一串常量名短多了)

所以,在没有很好的办法之前,数字状态其实还算可用。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值