作者在這一節(jié)中介紹了將枚舉和接口結(jié)合使用的用法:用枚舉來實(shí)現(xiàn)接口似炎。
這樣就可以實(shí)現(xiàn)枚舉類的多態(tài)钱贯,如作者給的操作符重載的例子:
public interface Operation {
double apply(double x, double y);
}
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;
}
}
代碼本身也比較簡(jiǎn)單易懂缔俄,就是利用接口來實(shí)現(xiàn)枚舉的多態(tài)炉媒。主要可以來重載其對(duì)應(yīng)的行為烙懦。
這樣的使用場(chǎng)景在我們系統(tǒng)中很少見驱入,主要是因?yàn)樵谖覀兿到y(tǒng)中獎(jiǎng)枚舉和行為結(jié)合起來使用的場(chǎng)景,主要就是在下載Excel 中vo 轉(zhuǎn)換成string的場(chǎng)景氯析,這種場(chǎng)景下行為是確定的亏较,不需要對(duì)行為進(jìn)行重載,所以沒有將枚舉和多態(tài)結(jié)合使用掩缓。
個(gè)人認(rèn)為這種用法主要適用于枚舉中行為的重載場(chǎng)景雪情。