import java.util.*;
// 등급 인터페이스와 구현체
interface Grade {
int getDiscountRate();
String getGradeName();
}
class NormalGrade implements Grade {
public int getDiscountRate() { return 0; }
public String getGradeName() { return "NORMAL"; }
}
class VipGrade implements Grade {
public int getDiscountRate() { return 20; }
public String getGradeName() { return "VIP"; }
}
그보다 enum 좋지 않을까?
등급 처럼 고정된 값이라던가!! 복잡한 로직보다 가독성있고 통일된 느낌
public enum Grade {
NORMAL("NORMAL", 0),
VIP("VIP", 20);
private final String name;
private final int discountRate;
Grade(String name, int discountRate) {
this.name = name;
this.discountRate = discountRate;
}
public int getDiscountRate() {
return discountRate;
}
public String getGradeName() {
return name;
}
}