У нас есть комбинация чисел, где числа от первого определяют формат последнего:
0001/0001/AF001 -> 0001/0001 == Rule for third number: two characters, three digits
0002/0001/0001 -> 0002/0001 == Rule for third number: four digits
Нам нужно проверить эти числа перед их сохранением в базе данных.Поскольку это является распространенной проблемой в некоторых наших проектах, мы хотим выполнить проверку в центральной службе (в данном случае в ejb).
Моя первая идея состояла в том, чтобы просто использовать метод, подобный:
public boolean isValid(String number1, String number2, String number3);
но мы хотим передать правило, если что-то недопустимо, чтобы пользователь мог видеть, что пошло не так, поэтому моя следующая идея:
public void checkNumbers(String number1, String number2, String number3) throws DetailsException;
Таким образом, можно вызвать что-то вродеэто:
try {
checkNumbers("0001", "0001", "AF002");
} catch(DetailsException d) {
// error handling
}
Но это кажется уродливым ... Каковы альтернативы / другие идеи, чтобы решить эту ситуацию.Есть ли типичный шаблон для использования?