MVC模式表示:模型-视图-控制器模式,此模式用于分离应用程序的问题。
模型——模型表示携带数据的对象或Java pojo。如果其数据改变它也可以具有逻辑来更新控制器。
视图——视图表示模型包含的数据的可视化层。
控制器——控制器模型和视图都有起作用,它控制数据流进行模型对象,并在数据更改时更新视图。它保持视图和模型分开,也是视图和模型的中间层。
实现实例
在这个实例中,将创建一个作为模式的Student对象,StudentView将是一个可以在控制台上打印学生详细信息的视图类,StudentController是负责在Student对象中存储数据并相应的更新StudentView视图的控制器类。
MVPatternDemo这是一个演示类,将使用StudentController来演示MVC模式的使用。
第一步
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;
}
}