代码中的魔鬼数字

什么是魔鬼数字

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

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

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

缺点

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

解决方案

定义为常量

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

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

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

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

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

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

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

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读