使MVC设计模式无效

使MVC设计模式无效

我想知道是否使用控制器将本地Student(Model)拉到我的视图类中使MVC设计模式无效。

Y

我从未将学生模型导入视图类。



控制者

public void saveStudent(int selectedRow, Student studentChanged){
    studentList.getStudentList().set(selectedRow, studentChanged);
}


视图

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();
        }
    });




我的预期功能是使用列表详细信息GUI更新列表中的现有学生。

最佳答案

只要与更新有关的所有逻辑都保留在控制器中就可以了,最终您可以在视图中添加一些验证,但是控制器在联系持久层时仍应有最后的决定权。

10-01 14:48