Hello,大家好!
下面是最简单的原理
https://m.runoob.com/design-pattern/mvc-pattern.html
下面是最简单的Demo
using UnityEngine;
public class MVCDemo : MonoBehaviour
{
void Start()
{
//创建一个模型:学生信息
Student stu = new Student();
stu.SetName("bob");
stu.SetRollNo("001");
//创建一个视图:把学生详细信息输出到控制台
StudentView view = new StudentView();
//创建一个控制器: 将view 和model 关联起来
StudentController stuController = new StudentController(stu, view);
stuController.UpdateView();
}
}
// M层 -> 模型代表一个存取数据的对象; 它也可以带有逻辑,在数据变化时更新控制器。
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;
}
}
// V层 -> view 预览代表模型包含的数据的可视化
public class StudentView
{
public void PrintStudentDetails(string studentName, string studentRollNo)
{
Debug.Log("Student : ");
Debug.Log("StudentName : " + studentName);
Debug.Log("StudentRollNo : " + studentRollNo);
}
}
// C层 -> 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。
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());
}
}
下面是最简单的输出
仅帮自己和大家体验MVC,更深层的内容请前往其他博客