定数のグループを含む古い列挙型クラスを処理しています。列挙型クラス内の関数は、渡された定数が列挙型に存在するかどうかを確認するために定義されています。現在、enum に追加できる定数がいくつかあります。その場合は、別のリリース プロセスを経る必要があります。そのため、enum を取り除き、db またはプロパティ ファイルからデータを取得して、新しい追加をリリースする必要がないようにします。しかし、それには問題があります。列挙型を参照するモジュールが多すぎるため、列挙型を破棄するとファイルの変更が多すぎます。
初期列挙型クラス
Class enum Planets{EARTH,MARS,SATURN};
private static final Planets[] codes={EARTH,MARS,SATURN};
public static boolean isPlanetPresent(String str){//static Edited 19-09-2013
for(Palnets planet : codes){
if(planet.equals(str)){
return true;
}
return false;
}
上記で、NEPTUNE が Planets の一部であるかどうかを確認する必要がある場合は、 を使用する必要がありますPlanets.isPlanetPresent("NEPTUNE")
。
変更を最小限に抑えるために、enum クラスを通常のクラスとして保持することにしました。静的配列はクラス内で宣言され、db のテーブルからデータを読み取る実行時に読み込まれます。
私が考えた静的な代替案:
Class Planets{
private static String[] codes;
public Planets{
Spring IOC to connect to db and get the data and place it into codes array( EARTH,MARS,SATURN)
}
public static boolean isPlanetPresent(String str){
for(String planet : codes){
if(planet.equals(str)){
return true;
}
return false;
}
}
上記の実装Planets.isPlanetPresent("NEPTUNE")
では、他のファイルを変更する必要はありません。
私の質問は:
- 私の実装は正しいですか?
- より良い代替実装はありますか?