我知道不可能在 Java 中扩展枚举,但我正在尝试为以下问题找到一个优雅的解决方案
我正在尝试对包含跨地区各种 Web 服务的 http 端点的枚举(或类)进行建模,比如我有服务 A 和 B,每个在美国、欧盟、日本或 CN 都有 4 个特定于地区的端点。(这基本上是针对我正在编写的一些单独的调试代码,在生产中,端点将从配置中选择)
我希望做这样的事情(不兼容的java代码)。
public enum IEndPoint {
NA_END_POINT,
EU_END_POINT,
JP_END_POINT,
CN_END_POINT,
}
public enum ServiceAEndPoint extends IEndPoint {
NA_END_POINT("http://A.com/");
EU_END_POINT("http://A-eu.com/");
JP_END_POINT("http://A-jp.com/");
CN_END_POINT("http://A-cn.com/");
}
我可以使用接口来做到这一点,其中我为每个区域都有一个方法,但在我看来,枚举方式更具表现力,有没有更好的方法可以对此进行建模?我正在寻找的是是否有更好的方法来模拟继承关系并且还具有枚举的表达能力。
ServiceAEndPoint.NA_END_POINT
对比
serviceAEndPoint.getNAEndPoint()