Для моих классов, у которых есть методы со схожей логикой проверки ввода (например, пользовательский многомерный массив, который имеет много методов, каждый из которых проверяет, находятся ли данные координаты в пределах границ массива), я создаю отдельный частная проверка, которая генерирует исключения времени выполнения, а также открытая проверка, которая просто возвращает логическое значение, указывающее, является ли переменная приемлемой для методов этого класса. Вот пример:
public class Foo {
public void doStuff(Variable v) {
checkVariableUnsafe(v);
... // do stuff
}
private void checkVariableUnsafe(Variable v) throws InvalidVariableException {...}
public boolean checkVariable(Variable v) {
try {
checkVariableUnsafe(v);
return true;
} catch (InvalidVariableException e) {
return false;
}
}
}
Можно ли его использовать или есть какие-то недостатки, которые я не вижу? Какой шаблон обычно используется в таких ситуациях?