重构第八章
9.Replace Magic Number With Symbolic Constant(以符号常量/字面常量取代魔法数)
你有一个字面数值,带有特别含义。创造一个常量,根据其意义为它命名,并将上述字面数值替换为这个常量。
Example:
double potentialEnergy(double mass, double height) {
return mass * 9.81 * height;
}
魔法数:拥有着特殊的含义,但是不能明确的表现出意义的数字。如示例中的9.81
End:
double potentialEnergy(double mass, double height) {
return mass * GRAVITATIONAL_CONSTANT * height;
}
static final double GRAVITATIONAL_CONSTANT = 9.81;
Conclusion:
如果你需要在不同的地点引用同一个逻辑数,你只需要修改GRAVITATIONAL_CONSTANT定义的部分,可以节省不少的精力和时间
同时,在阅读代码的时候,也可以通过名称判断出常量的含义,增加了代码的可读性。
注意
重构必须在有单元测试的情况下,保证之前的功能修改后不收影响。切记!!!
网友评论