我有12種方法,如下面的三種方法。我注意到他們都在做同樣的功能,唯一改變的是方法的名稱和條件。有沒有什麼聰明的方法可以製作出一種能夠處理以下條件的通用方法。評估不同條件下執行相同功能的通用方法
備註:callXCD是具有這些方法的當前對象的子對象,其方法(如「isNational()」)受到保護。
public int getNationalTelephonyCost(){
if(callXCD.isNational() && callXCD.isTelephony())
return Integer.parseInt(callXCD.getDiscountedAmount());
else
return 0;
}
public int getOnNetTelephony(){
if(callXCD.isOnNet() && callXCD.isTelephony() && callXCD.isMobileOriginating())
return Integer.parseInt(callXCD.getDiscountedAmount());
else
return 0;
}
public int getLocalData(){
if(callXCD.isLocal() && callXCD.isData())
return Integer.parseInt(callXCD.getDiscountedAmount());
else
return 0;
}
你可以將callXCD包裝在一個隱藏這些方法的新對象中,但是如果你不能改變callXCD,你將不會離開多個if-s。 – arynaq