我正在尝试创建一个图书馆管理系统。现在,我知道边界不能直接与实体交互。控件类充当边界和实体类之间的中介。但是,何时创建这些类的对象?
首先,让我们谈谈登录。边界将是使用Java Swing创建的登录表单的UI。 Controller类将是PersonController,它包含一个名为“validateUser()”的函数。名为User的Entity类包含用户的信息并访问数据库。
现在,我需要创建用户界面,获取用户名&使用动作侦听器从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
}
答案 0 :(得分:1)
在我看来,这个过程应该是这样的......
您有三个元素,UI,模型和控制器。
用户界面向用户提供选择......
模型将需要创建一个User
对象(因为您的UI不应该知道如何实现这一目标)。
控制器将负责响应来自UI的事件并决定应该做什么。
当用户输入值并单击“接受”操作(它可能是什么)时,控制器会捕获该事件并从UI请求User
对象。 UI获取用户输入的信息,并要求模型使用这些值创建User
对象。
控制器可以验证User
对象。
在任何时候,过程的任何部分都可以选择抛出异常。由于UI是系统中唯一可以实际与用户对话的部分,因此用户界面有责任显示这些错误。
基本工作流程可能看起来像这样......
创建模型,表单和控制器。
将模型添加到表单,将表单添加到控制器。
这些不同元素之间的相互作用必须尽可能通过接口完成。没有任何部分应该更多地了解其他部分,然后它绝对需要 - 恕我直言。
我的第一步是 - 在脑海中清楚地知道你想要实现的目标。找出谁负责什么,并设计连接它们所需的桥梁