首页 > 代码库 > MVC模式

MVC模式

MVC模式:即Model-View-Controller模式,该模式将应用程序划分为数据模型模块,数据显示模块,逻辑控制模块:

  • Model  代表一个对象或一个装载了数据的POJO,同样可以包含一些逻辑,即当其自身的数据发生变化时,去通知Controller
  • View  代表Model中数据的视觉展示
  • Controller  控制器同时作用于Model和View。它控制着Model中的数据流向,且每当数据发生变化时,会去更新View。它保持着View与Model之间的独立

实现:

举个例子,创建一个Student对象,代表Model,StudentView代表一个View,用于将student中的数据输出到控制台,StudentController负责将数据存储到Student中并实时更新StudentView。

 

示例代码如下:

public class Student {   private Date birth;   private String name;   public String getBrith() {      return birth;   }   public void setBirth(String birth) {      this.birth= birth;   }   public String getName() {      return name;   }   public void setName(String name) {      this.name = name;   }}
public class StudentView {   public void printStudentDate(String studentName, Date birth){      System.out.println("Student: ");      System.out.println("Name: " + studentName);      System.out.println("Birth: " + birth.toString());   }}
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 setStudentBirth(Date birth){      model.setBirth(birth);           }   public DategetStudentBirth(){      return model.getBirth();           }   public void updateView(){                      view.printStudentDetails(model.getName(), model.getBirth());   }    }

 

/*************************************外星人乔丹拍板时间*************************************************/

针对一个具体的对象,内部是数据,外部是可视效果,普通模式下,当要更新数据时,是直接操作这个对象,而更新了数据之后,又要再去更新其视觉效果,

对用户而言,要同时维护两方面,真实数据即其视觉效果。而MVC模式,正是解决这种多方面维护的繁杂性,在数据可视觉效果之间,增加一个用于桥接的

控制器,更新数据通过控制器,数据更新之后,控制器会实时更新其视觉效果

一切改动只通过控制器完成,就是电视的遥控器