public double finalPrice() {
double basePrice = this.quantity * this.itemPrice;
int discountLevel = getDiscountLevel();
return this.discountedPrice(basePrice, discountLevel);
}
private int getDiscountLevel() {
return this.quantity > 100 ? 2 : 1;
}
private double discountedPrice(double basePrice, int discountLevel) {
return discountLevel == 2 ? basePrice * 0.9 : basePrice * 0.95;
}
}
해당코드에서 매개변수를 하나 줄이고 그 매개변수를 메서드로 받아 사용하면된다.
public double finalPrice() {
double basePrice = this.quantity * this.itemPrice;
return this.discountedPrice(basePrice);
}
private int getDiscountLevel() {
return this.quantity > 100 ? 2 : 1;
}
private double discountedPrice(double basePrice) {
return getDiscountLevel() == 2 ? basePrice * 0.9 : basePrice * 0.95;
}