긴 매개변수 목록
매개변수를 질의 함수로 바꾸기
//AsIs
public double getFinalPrice() {
double basePrice = this.quantity * this.itemPrice;
int discountLevel = this.quantity > 100 ? 2 : 1;
return this.discountedPrice(basePrice, discountLevel);
}
private double discountedPrice(double basePrice, int discountLevel) {
return discountLevel == 2 ? basePrice * 0.9 : basePrice * 0.95;
}
//ToBe
public double getFinalPrice() {
double basePrice = this.quantity * this.itemPrice;
return this.discountedPrice(basePrice);
}
private double discountedPrice(double basePrice) {
return discountLevel() == 2 ? basePrice * 0.9 : basePrice * 0.95;
}
private int discountLevel() {
return this.quantity > 100 ? 2 : 1;
}플러그 인수 제거하기
여러 함수를 클래스로 묶기
Last updated