魔鬼数字

代码中的魔鬼数字

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

 

魔鬼数字主要影响了代码可读性,读者看到的数字无法理解其含义,从而难以理解程序的意图。当程序中出现的魔鬼数字过多时,代码的可维护性将会急剧下降,代码变得难以修改,并容易引入错误。

例如:

 

修改后:

 

例如:

int itemCount=10;                  // 这可以认为不是魔鬼数字 ,但应该有注释

       int itemSize=5;                    //   这可以认为不是魔鬼数字 ,但应该有注释

       // 一系列处理逻辑后

       if ((storageManager.getCapacity() - itemCount*itemSize) < 1024){   //1024 是魔鬼数字

           storageManager.expandCapacityBy(512);     //512 是魔鬼数字

     }

 

解决方案:

1、   将魔鬼数字定义为常量

例如,将:

storageManager.expandCapacityBy(512);

改成:

public static final int CAPACITY_INCREASE_STEP=512;

storageManager.expandCapacityBy(CAPACITY_INCREASE_STEP);

 

2、   将使用魔鬼数字的逻辑封装为方法,增加注释

例如,将:

if ((storageManager.getCapacity() - itemCount*itemSize) < 1024){

改成:

if ( storageManager.needIncreaseCapacity(itemCount,itemSize)){

 

boolean storageManager.needIncreaseCapacity(int itemCount,int itemSize){

    return (storageManager.getCapacity() - itemCount*itemSize) < 1024;// 当剩余容量小于 1024 字节时,需要扩充空间。

}

猜你喜欢

转载自zgx945.iteye.com/blog/2400961