public class Discount {
private double discountedTotal;
private double discount;
private double baseTotal;
public Discount(double baseTotal) {
this.baseTotal = baseTotal;
}
public double getDiscountedTotal() {
return this.discountedTotal;
}
public void setDiscount(double number) {
this.discount = number;
this.discountedTotal = this.baseTotal - this.discount;
}
}
@Test
void discount() {
Discount discount = new Discount(100);
// assertEquals(100, discount.getDiscountedTotal());
discount.setDiscount(10);
assertEquals(90, discount.getDiscountedTotal());
}
public class Discount {
private double discount;
private double baseTotal;
public Discount(double baseTotal) {
this.baseTotal = baseTotal;
}
public double getDiscountedTotal() {
return this.baseTotal - this.discount;
}
public void setDiscount(double number) {
this.discount = number;
}
}
파생 함수를 지우고 질의 함수로 변경하여 깔끔하게 리팩토링이 되었다.