第38条:用接口模拟可扩展的枚举

作者在这一节中介绍了将枚举和接口结合使用的用法:用枚举来实现接口。
这样就可以实现枚举类的多态,如作者给的操作符重载的例子:

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;
    }
}

代码本身也比较简单易懂,就是利用接口来实现枚举的多态。主要可以来重载其对应的行为。
这样的使用场景在我们系统中很少见,主要是因为在我们系统中奖枚举和行为结合起来使用的场景,主要就是在下载Excel 中vo 转换成string的场景,这种场景下行为是确定的,不需要对行为进行重载,所以没有将枚举和多态结合使用。
个人认为这种用法主要适用于枚举中行为的重载场景。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容