簡體   English   中英

將我的公司登錄名放在vaadin應用程序中的位置

[英]Where to put my business login in vaadin application

我有一個小的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對象並將其存儲在List中。 所以我在想,我可以在MyUI.java中調用一個函數,例如createNewEmployee() ,然后在另一個類CreateEmployee.java定義該函數,從中獲取我需要的所有數據(名稱,姓氏,地址等) MyUI.java並在CreateEmployee.java構造新的Employee對象? 聽起來合理嗎? 在MyUI.java中執行此操作很容易,但是我認為那應該只處理GUI,你們認為呢?

我喜歡使用一種服務設計模式,其中所有業務邏輯都封裝在服務中。

您將擁有一個EmployeeService類,該類可以以最簡單的形式實例化為MyUI上的成員變量。 我的服務通常是無狀態的,並且具有業務方法。 在您的示例中,它將具有名為createNewEmployee()的方法。

我通常喜歡為我的服務提供接口。 有些人為任何數據源交互(搜索DAO)使用附加層。 我喜歡保持簡單,並直接從我的服務訪問數據源。

如果我認為我將來將有多種實現或需要交換數據源,那么我將擁有AbstractEmployeeService,其中大多數真正的業務邏輯都將運用於此,然后有一個特定於數據源的實現來執行數據源交互(例如JdbcEmployeeService。)

如果您想獲得更高級的建議,我建議使用Spring注入您的服務。 請參閱http://vaadin.github.io/spring-tutorial/以開始使用。

不同的開發人員會有不同的意見。 沒有一個正確的答案,但是您正沿着正確的道路分離我們的業務邏輯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM