Javaでenumを拡張できないことは知っていますが、以下のエレガントなソリューションを見つけようとしています
地域全体のさまざまな Web サービスの http エンドポイントを含む列挙型 (またはクラス) をモデル化しようとしています。たとえば、サービス A と B があり、それぞれが米国、EU、JP、または 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()