item 38 : 확장할 수 있는 열거 타입이 필요하면 인터페이스를 사용하라
1. 연산 인터페이스 Operation
Operationpublic interface Operation {
double apply(double x, double y);
}2. BasicOperation 열거 타입
BasicOperation 열거 타입public enum BasicOperation implements Operation {
PLUS("+") {
public double apply(double x, double y) { return x + y; }
},
MINUS("-") {
public double apply(double x, double y) { return x - y; }
},
TIMES("*") {
public double apply(double x, double y) { return x * y; }
},
DIVIDE("/") {
public double apply(double x, double y) { return x / y; }
};
private final String symbol;
BasicOperation(String symbol) {
this.symbol = symbol;
}
@Override public String toString() {
return symbol;
}
}3. ExtendedOperation 열거 타입
ExtendedOperation 열거 타입4. 확장 가능 열거 타입의 활용 예
5. Class<T>를 이용한 확장성 제공
Class<T>를 이용한 확장성 제공요약
핵심 정리
Last updated