Всем доброго времени суток!
Хотел попросить совета. Получил на собеседование тестовое задание - написать консольное приложение для выполнения некоторых действий над БД. Одним из условий задания является написанием класса для работы с БД по правилам JavaBeans . Как я понял, данные правила утверждают, что экземпляр поля класса инициализируются через сеттеры, а конструктор остается дефолтным-пустым.
Предположим, что у меня есть два поля класса - число
int N
и строка подключения к БД String S
.
Число N должно вводиться с консоли. Я решил вставить проверку на корректность введенного числа (вдруг пользователь введет что-то вроде "1.2" или "1/////2!?*("). И возник вопрос:
Где нужно делать проверку с помощью try{}catch(Exception err){}
? В главном классе? Или в классе БД (в самом сеттере)?
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Если вкратце, то ни в сеттере, ни в геттере не должно быть никакой дополнительной логики, один просто устанавливает поле согласно переданному ему значению, а второй возвращает текущее значение заданного поля. Поля же, в свою очередь, должны соответствовать столбцам таблицы в БД, никакой «строки подключения к БД» там быть не должно.
Т.е. если твой бин описывает таблицу User у которого есть два свойства id и name, то бин должен выглядеть следующим образом.
на мой взгляд нужно все равно делать отдельный метод, где будет ввод и проверка данных.
в больших задачах есть отдельный класс ConsoleHelper
для работы с консолью, там три метода(можно конечно и больше в пределах потребностей)
getString,getInt,writeMessage
вот собственно в getInt лучше делать проверку на правильность данных, и обрабатывать,
например повторно попросить ввести число.