2013-03-20 52 views
0

我想創建一個圖書館管理系統。現在,我知道邊界不能直接與實體進行交互。控制類充當邊界和實體類之間的中介。但是,這些類的對象何時創建?我們如何在java中實現實體邊界控制模式?

首先,我們來談談登錄。邊界將是使用Java Swing創建的登錄表單的UI。 Controller類將是PersonController,其中包含一個名爲「validateUser()」的函數。名爲User的實體類包含用戶的信息並訪問數據庫。

現在,我需要創建用戶界面,使用操作偵聽從UI獲取用戶名&密碼,然後創建一個用戶名&密碼的用戶實體,然後調用PersonController的的ValidateUser()方法來檢查,如果登錄是正確的,用戶是有效的。

我該怎麼做?我在哪裏創建這些對象?

這裏是我的代碼至今:

public class MainClass { // main class 

    public static void main(String[] args) { 
     PersonController loginSession = new PersonController(); //UNSURE 
    } 
} 

public class PersonController { 

    public PersonController(){ 
     LoginUI loginForm = new LoginUI(); //UNSURE 
     loginForm.setVisible(true); //UNSURE 
    } 
    //implementation of the validateUser() function 
} 

public class User { 
    private String username; 
    private String password; 
    private String role; 
    private String name; 
    private String phone; 
    private String email; 
    // get & set methods and accessing the database 

} 
public class LoginUI{ 
    //entire code for the UI in Java Swing created using Netbeans IDE 
} 

回答

1

在我看來,這個過程應該工作是這樣的......

你有三個要素,用戶界面,模型和控制器。

的UI提供多種選擇給用戶...

該模型將需要創建一個User對象(如您的UI不應該對如何這實際上是實現了知識)。

控制器將負責響應來自用戶界面的事件並決定應該做什麼。

當用戶輸入值並單擊「接受」操作(它可能是)時,控制器將捕獲該事件並向用戶界面請求一個User對象。用戶界面將獲取用戶輸入的信息,並要求模型創建具有這些值的User對象。

控制器可以驗證User對象。

在任何時候,流程的任何部分都可能選擇拋出異常。由於用戶界面是系統中唯一可以與用戶進行對話的部分,因此用戶界面有責任顯示這些錯誤。

基本的工作流程可能是這個樣子......

創建模型,形式和控制器。

將模型添加到窗體中,將窗體添加到控制器。

這些不同元素之間的交互必須通過可能的接口完成。沒有一部分應該更多地瞭解另一部分,那麼它絕對需要 - 恕我直言。

我的第一步是 - 在你的腦海裏清楚你想達到的目標。找出誰負責什麼,並設計你需要將它們連接在一起的橋樑

+0

有關投票原因的任何反饋將是很好的,我們如何學習和改進這些答案。否則,你只是說你對答案有個人問題,但沒有辦法量化它 – MadProgrammer 2015-06-03 20:18:08