Replace Magic Number with Symbolic Constant(以字面常量取代魔法数)

动机

在计算机科学中,魔法数是历史最悠久得不良现象之一。所谓魔法数是指拥有特殊意义,却又不能明确表现出这种意义得数字。如果你需要在不同的地方引用同一个逻辑数,魔法数会让你烦恼不已,因为一旦这些数发生变化,你就必须在程序中找到所有魔法数,并将它们全部修改一遍,这简直就是一场噩梦。就算你不需要修改,要准确找出每个魔法数的用途,也会让你颇费脑筋。

许多语言都允许你声明变量。变量不会造成任何性能开销,却可以大大提高代码的可读性。

做法

  1. 声明一个常量,令其值为原本的魔法数值。
  2. 找出这个魔法数的所有引用点。
  3. 检查是否可以使用这个新声明的常量来替换该魔法数。如果可以,便以此常量替换之。
  4. 编译。
  5. 所有魔法数都被替换完毕后,编译并测试。此时整个程序应该运转如常,就像没有做任何修改一样。

范例

double potentialEnergy(double mass, double height) {
	return mass * 9.81 * height;
}

重构后

double potentialEnergy(double mass, double height) {
	return mass * GRAVITATIONAL_CONSTANT * height;
}

static final double GRAVITATIONAL_CONSTANT = 9.81;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值