在我今天開發的時候,因爲業務變動,需要給方法A增加一個參數,方法A在很多地方被使用,如何做纔會改動最小。
有些人可能會說,重新寫個方法;有的人說,直接在原來的方法A中增加一個參數。
例如:一個總價計算方法getTotal,該方法有兩個參數,數量和單價:
public class CalcUtils {
public static int getTotal(int num,int price){
return num*price;
}
}
但是突然由於業務變動,需要增加一個打折率作爲參數。
聯想到最近在看的spring源碼中有大量重載的方法,突然想到了解決方法。同時也爲我解了另外一個疑惑,爲什麼spring源碼中有這麼多重載的方法,例如:
例如上圖中的getBean和doGetBean方法。爲什麼會有這麼多重載的方法?
我們可以使用方法重載的方式,解決該問題!
增加一個重載的getTotal方法,將原來的CalcUtils類改爲:
public class CalcUtils {
public static int getTotal(int num,int price){
return CalcUtils.getTotal(num, price, 0);
}
public static int getTotal(int num,int price,int discount){
return price*num*(1-discount);
}
}
無需改變原有調用的代碼。