Java 这会使MVC设计模式无效吗?
我想知道,如果让一个本地学生(模型)在我的视图类中使用控制器,是否会使MVC设计模式无效 F.Y.I 我从不将我的学生模型导入view类Java 这会使MVC设计模式无效吗?,java,model-view-controller,Java,Model View Controller,我想知道,如果让一个本地学生(模型)在我的视图类中使用控制器,是否会使MVC设计模式无效 F.Y.I 我从不将我的学生模型导入view类 控制器 public void saveStudent(int selectedRow, Student studentChanged){ studentList.getStudentList().set(selectedRow, studentChanged); } 看法 。 . . 。 . . 我想要的功能是使用列表详细信息GUI更新列表
控制器
public void saveStudent(int selectedRow, Student studentChanged){
studentList.getStudentList().set(selectedRow, studentChanged);
}
看法
。
.
.
。
.
.
我想要的功能是使用列表详细信息GUI更新列表中的现有学生 只要所有关于更新的逻辑都保留在控制器中,就可以了,最终您可以在视图中添加一些验证,但控制器仍然应该拥有联系持久层的最后决定权。TL;DR:不管它是做还是不做,“MVC”在不同的框架中对不同的人意味着不同的东西。否则您将如何将数据获取到视图中?我可以在从控制器中提取数据时将其转换为字符串。然后将编辑的字符串发送给控制器,然后将该字符串解析为学生模型。但是我觉得有很多不必要的代码,它们仍然在传递一个模型,只是碰巧被序列化了。
Student currentStudent;
public StudentDetailedUI(StudentCntrl studentCntrIn, int selectedRowIn) {
studentCntrl = studentCntrIn;
selectedRow = selectedRowIn;
if (selectedRow >= 0) {
currentStudent = studentCntrl.getStudent(selectedRow);
initComponents();
parseCurrentStudent();
} else {
initComponents();
parseNewStudent();
}
}
JButton saveButton = new JButton("Save");
saveButton.addActionListener((ActionEvent e) -> {
if (selectedRow != -1){
currentStudent.setFirstName(firstNameDisplayValue.getText());
currentStudent.setLastName(lastNameDisplayValue.getText());
currentStudent.setUniversity(universityDisplayValue.getText());
currentStudent.setGpa(Double.parseDouble(gpaDisplayValue.getText()));
StudentDetailedUI.this.studentCntrl.saveStudent(selectedRow, currentStudent);
StudentDetailedUI.this.studentCntrl.getStudentListUI();
}
else {
StudentDetailedUI.this.studentCntrl.addStudent(firstNameDisplayValue.getText() +", " +lastNameDisplayValue.getText() +", " +universityDisplayValue.getText() +", " +gpaDisplayValue.getText());
StudentDetailedUI.this.studentCntrl.getStudentListUI();
}
});