20190124——重神 Javamvc模式

MVC模式表示:模型-视图-控制器模式,此模式用于分离应用程序的问题。
模型——模型表示携带数据的对象或Java pojo。如果其数据改变它也可以具有逻辑来更新控制器。
视图——视图表示模型包含的数据的可视化层。
控制器——控制器模型和视图都有起作用,它控制数据流进行模型对象,并在数据更改时更新视图。它保持视图和模型分开,也是视图和模型的中间层。

实现实例
在这个实例中,将创建一个作为模式的Student对象,StudentView将是一个可以在控制台上打印学生详细信息的视图类,StudentController是负责在Student对象中存储数据并相应的更新StudentView视图的控制器类。

MVPatternDemo这是一个演示类,将使用StudentController来演示MVC模式的使用。
20190124——重神 Javamvc模式_第1张图片

20190124——重神 Javamvc模式_第2张图片

第一步

package MVC模式;

public class Student {
    private String rollNo;
    private String name;

    public String getRollNo() {
        return rollNo;
    }

    public void setRollNo(String rollNo) {
        this.rollNo = rollNo;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

第二步

package MVC模式;

public class StudentView {
    public void printStudentDetails(String studentName,String studentRollNo){
        System.out.println("Student:");
        System.out.println("Name:"+studentName);
        System.out.println("Roll No:"+studentRollNo);
    }
}

第三步

package MVC模式;

public class StudentController {
    private Student model;
    private StudentView view;

    public StudentController(Student model, StudentView view) {
        this.model = model;
        this.view = view;
    }

    public void setStudentName(String name){
        model.setName(name);
    }

    public String getStudentName(){
        return model.getName();
    }

    public void setStudentRollNo(String rollNo){
        model.setRollNo(rollNo);
    }

    public String getStudentRollNo(){
        return model.getRollNo();
    }



    public void updateView(){
        view.printStudentDetails(model.getName(),model.getRollNo());
    }
}

第四步

package MVC模式;

public class MVCPatternDemo {
    public static void main(String[] args) {
        Student model=retriveStudentFromDatabase();

        StudentView view =new StudentView();
        StudentController controller=new StudentController(model,view);

        controller.updateView();

        controller.setStudentName("John");
        controller.updateView();
    }

    private static Student retriveStudentFromDatabase(){
        Student student=new Student();
        student.setName("Robert");
        student.setRollNo("10");
        return student;
    }
}

你可能感兴趣的:(20190124——重神 Javamvc模式)