0

我正在尝试创建一个图书馆管理系统。现在,我知道边界不能直接与实体交互。控制类充当边界和实体类之间的中介。但是,这些类的对象是什么时候创建的呢?

首先,让我们谈谈登录。边界将是使用 Java Swing 创建的登录表单的 UI。Controller 类将是 PersonController,其中包含一个名为“validateUser()”的函数。名为 User 的实体类包含用户信息并访问数据库。

现在,我需要创建 UI,使用操作侦听器从 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
}
4

1 回答 1

1

在我看来,这个过程应该像这样工作......

你有三个元素,UI、模型和控制器。

UI 向用户呈现选择...

该模型将需要创建一个User对象(因为您的 UI 不应该知道这是如何实际实现的)。

控制器将负责响应来自 UI 的事件并决定它应该做什么。

当用户在其中键入值并单击“接受”操作(无论它可能是什么)时,控制器会捕获该事件并从 UI 请求一个User对象。UI 获取用户输入的信息,并要求模型使用这些值创建一个User对象。

控制器可以验证User对象。

在任何时候,进程的任何部分都可以选择抛出异常。由于 UI 是系统中唯一可以真正与用户对话的部分,因此 UI 有责任显示这些错误。

基本的工作流程可能看起来像这样......

创建模型、表单和控制器。

将模型添加到表单,将表单添加到控制器。

这些不同元素之间的交互必须尽可能通过接口完成。任何部分都不应该更多地了解另一部分,然后它绝对需要 - 恕我直言。

我的第一步是——在你的脑海中清楚你想要达到的目标。找出谁负责什么,并设计将它们连接在一起所需的桥梁

于 2013-03-20T23:36:52.400 回答