У меня есть небольшое приложение для vaadin, которое позволит пользователям вводить некоторые данные в форме (данные сотрудника, такие как имя, фамилия, адрес и т. Д.) И хранить каждый объект-сотрудник в списке. Это структура до сих пор:Где разместить мой бизнес-логин в приложении vaadin
EmployeeForm
src/main/java
com.vaadin.project.EmployeeForm
MyUI.java
employee
Address.java
Employee.java
Таким образом, для целей тестирования я создал объект Employee непосредственно внутри MyUI.java, например, так:
Address address1 = new Address(34, "Flinch Street","KT25AG");
Employee employee1 = new Employee("John","Smith", "Male", 39, address1, "Permanent", 8765);
List<Employee> employee = new ArrayList<Employee>();
employee.add(employee1);
for(Employee currentEmployee : employee){
System.out.println(employee);
}
просто чтобы убедиться, что работает, но кажется неправильным сделать это там, поэтому я хотел бы создать еще один класс, который касается всей бизнес-логики, и мне было интересно, какой лучший способ. Под бизнес-логином я подразумеваю, что мне нужно убедиться, что это происходит, когда пользователи заполняют форму в файле MyUI.java и нажимают кнопку отправки, создается новый объект Employee и сохраняется в списке. Итак, я думаю, могу ли я вызвать функцию в MyUI.java, что-то вроде createNewEmployee()
, а затем эту функцию определить внутри другого класса CreateEmployee.java
, получить все необходимые мне данные (имя, фамилия, адрес и т. Д.) Из MyUI.java и построить новый объект Employee в CreateEmployee.java
? Это звучит разумно? Достаточно легко сделать это в MyUI.java, но я считаю, что нужно иметь дело только с графическим интерфейсом, что вы, ребята, думаете?
спасибо за совет, я создал класс EmployeeService и реализовал 'createNewEmployee (...)' и 'clearTextFields (...)' там (оба вызываются из MyUI.java), и все это работает. Теперь есть еще одна связанная вещь, что мне делать с обработкой ошибок, то есть, должен ли я создать для нее другой отдельный класс или иметь дело с ним в MyUI.java? – antobbo
Мне нравится использовать 'setErrorHandler' в пользовательском интерфейсе и выводить собственное окно ошибок для обработки ошибок по всем разделам. Если мне нужна специальная обработка ошибок, тогда я могу обращаться с ней там, где это необходимо. Мне понравятся ошибки пузыря, обернув в RuntimeExceptions, когда я не уверен, как обрабатывать ошибку. Я обычно регистрирую исключение в обработчике ошибок. – chenson42
Есть ли у вас пример этого? [Vaadin] (https://vaadin.com/docs/-/part/framework/application/application-errors.html), похоже, обрабатывает их в пользовательском интерфейсе. В моем конкретном случае мне нужно обрабатывать пустые поля ввода и, по крайней мере, исключение NumberFormatException, если строка в текстовом поле не может быть преобразована в int – antobbo