리팩토링 ver1
<aside> 🌎
설명
예제
<aside> 🧮
package enumm;
public class ClassGrade {
public static final ClassGrade BASIC = new ClassGrade(10);
public static final ClassGrade GOLD = new ClassGrade(20);
public static final ClassGrade DIAMOND = new ClassGrade(30);
private final int discountPercent;
private ClassGrade(int discountPercent) {
this.discountPercent = discountPercent;
}
public int getDiscountPercen() {
return discountPercent;
}
}
설명
- ClassGrade에 할인율(discountPercent) 필드 추가
- 조회 메서드 추가
----------------------
package enumm;
public class DiscountSerivce {
public int discount(ClassGrade classGrade, int price) {
return price * classGrade.getDiscountPercen() / 100;
}
}
설명
IF문 없애고 간략화
--------------------
package enumm;
public class ClassGradeMain1 {
public static void main(String[] args) {
int price = 10000;
DiscountSerivce discountService = new DiscountSerivce();
int basic = discountService.discount(ClassGrade.BASIC, price);
int gold = discountService.discount(ClassGrade.GOLD, price);
int diamond = discountService.discount(ClassGrade.DIAMOND, price);
System.out.println("BASIC 등급의 할인 금액 : " + basic);
System.out.println("GOLD 등급의 할인 금액 : " + gold);
System.out.println("DIAMOND 등급의 할인 금액 : " + diamond);
}
}
출력
BASIC 등급의 할인 금액 : 1000
GOLD 등급의 할인 금액 : 2000
DIAMOND 등급의 할인 금액 : 3000
</aside>