标签:
我们要介绍的重构是提取方法。这个重构极其简单但却大有裨益。首先,将逻辑置于命名良好的方法内有助于提高代码的可读性。当方法的名称可以很好地描述这部分代码的功能时,可以有效地减少其他开发者的研究时间。假设越少,代码中的bug也就越少。重构之前的代码如下:
public class Receipt {
private List<Double> Discounts;
private List<Double> ItemTotals;
public Double CalculateGrandTotal() {
Double subTotal = 0d;
for(Double itemTotal : ItemTotals) subTotal += itemTotal;
if (Discounts.size() > 0) {
for(Double discount : Discounts) subTotal -= discount;
}
Double tax = subTotal * 0.065d;
subTotal += tax;
return subTotal;
}
}
public class Receipt {
private List<Double> Discounts;//getter setter
private List<Double> ItemTotals;//getter setter
public Double CalculateGrandTotal() {
Double subTotal = CalculateSubTotal();
subTotal = CalculateDiscounts(subTotal);
subTotal = CalculateTax(subTotal);
return subTotal;
}
private Double CalculateSubTotal() {
Double subTotal = 0d;
for(Double itemTotal : ItemTotals){
subTotal += itemTotal;
}
return subTotal;
}
private Double CalculateDiscounts(Double subTotal) {
if (Discounts.size() > 0) {
for(Double discount : Discounts){
subTotal -= discount;
}
}
return subTotal;
}
private Double CalculateTax(Double subTotal) {
Double tax = subTotal * 0.065d;
subTotal += tax;
return subTotal;
}
}
标签:
原文地址:http://www.cnblogs.com/jgig11/p/5786324.html