私は、有効であるためには、いくつかの変数に接頭辞付きの値のいずれかが含まれている必要がある検証パターンをよく実行しました。
PSEUDO CODE:
IF x == CONSTANT_1 || X == CONSTANT_2 || ... || x == CONSTANT_N
THEN X is valid
OR 用語の連鎖を避けるために、すべての定数を含む静的な最終的な変更不可能なセットを作成しました。
public final static String CONSTANT_1 = *value* ;
public final static String CONSTANT_2 = *value* ;
...
public final static String CONSTANT_N = *value* ;
public final static Set SET_OF_CONSTANTS = Collections.unmodifiableSet(new HashSet(){
private static final long serialVersionUID = 1L;
{
add(CONSTANT_1);
add(CONSTANT_2);
...
add(CONSTANT_3);
}
});
そして、次の方法でチェックを実行します。
if(!SET_OF_CONSTANTS.contains(x)){
//X NOT VALID
}
これが優れたプログラミング手法であるかどうか、代替手段があるかどうか、OR タームチェーンの代わりにハッシュ テーブル クエリ (理論的には O(1)) を使用するとパフォーマンスが向上するかどうかを知りたいです。コードの可読性。