魔鬼数字
代碼中的魔鬼數字
?
魔鬼數字的定義:在代碼中沒有具體含義的數字、字符串。
?
魔鬼數字主要影響了代碼可讀性,讀者看到的數字無法理解其含義,從而難以理解程序的意圖。當程序中出現的魔鬼數字過多時,代碼的可維護性將會急劇下降,代碼變得難以修改,并容易引入錯誤。
?
例如:
修改后:
例如:
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 字節時,需要擴充空間。
}
?
總結
- 上一篇: RFID 应用
- 下一篇: GHOST8.2文图教程备份恢复工具