java - 在 vaadin 应用程序中放置我的企业登录信息的位置

标签 java vaadin7

我有一个小型 vaadin 应用程序,它允许用户在表单中输入一些数据(员工详细信息,如姓名、地址等)并将每个员工对象存储在列表中。 这是到目前为止的结构:

EmployeeForm
    src/main/java
        com.vaadin.project.EmployeeForm
            MyUI.java
        employee
            Address.java
            Employee.java

因此,出于测试目的,我直接在 MyUI.java 中创建了一个 Employee 对象,如下所示:

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 获取我需要的所有数据(姓名、地址等)并在 CreateEmployee.java 中构造新的 Employee 对象?听起来合理吗?在 MyUI.java 中做到这一点很容易,但我认为应该只处理 GUI,你们觉得怎么样?

最佳答案

我喜欢使用服务设计模式,其中所有业务逻辑都封装在服务中。

您将拥有一个 EmployeeService 类,它可以以最简单的形式实例化为 MyUI 上的成员变量。我的服务通常是无状态的并且有业务方法。在您的示例中,它将具有名为 createNewEmployee() 的方法。

我通常喜欢为我的服务提供一个界面。有些人使用附加层进行任何数据源交互(搜索 DAO)。我喜欢保持简单并直接从我的服务访问数据源。

如果我认为我将来会有多个实现或需要交换数据源,那么我将有一个 AbstractEmployeeService,其中大部分真正的业务逻辑将进行,然后有一个数据源特定的实现进行数据源交互(例如 JdbcEmployeeService。)

如果您想获得更高级的体验,我建议您使用 Spring 来注入(inject)您的服务。请参阅http://vaadin.github.io/spring-tutorial/开始吧。

不同的开发者会有不同的看法。没有一个正确的答案,但您正走在分离我们的业务逻辑的正确道路上!

关于java - 在 vaadin 应用程序中放置我的企业登录信息的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40950060/

相关文章:

gradle - 使用 Gradle 编译 Vaadin 小部件集

java - Vaadin 树展开动画问题

java - 如何对我的服务器上的可下载 .jar 进行计费? (移动、j2me)

java - 在 Java 中创建的 XMLSignature 与 C# 不同

java - 如何使用 java 提取 Postgres 时间戳字段?

JAVA ESC Pos上传NV图形到打印机

java - Vaadin网格与表格

java - 当我们在JAX-RS中直接获取http body时如何关闭Response对象?

java - 如何将 Vaadin 7 服务器推送应用到导航 View

java - Vaadin 和 Spring,通过 LDAP 针对 Active Directory 进行身份验证