<track id="nHblcBc"></track>
  • <track id="nHblcBc"></track>

        <track id="nHblcBc"></track>

        1. 一.MVC思想

          2.什么是MVC:

          • M即Model(模型)
          • V即View(视图)
          • C即Control(把持)

          而应用MVC的目标就是将M和V进行代码分别,便于逻辑区分。通过C作为M与V沟通的桥梁(中介)进行模型层与视图层的拜访。

          3.应用的注意点

          1.它并不是必要的内容,并不是心目中必需应用的框架

          2.它重要用于游戏中UI的体系逻辑开发

          4.MVC的应用

          在MVC框架中,我们的视图层是无法与模型层进行直接拜访的,我们须要通过我们的把持层,把用户在视图层上的交互信息通过把持层传输给我们的模型层,让模型层进行更新操作,然后在通过把持层给视图层发送通知,表现更新的操作完成。

          举例:

          我们不应用MVC框架制造一个界面功效:

          我们应用MVC框架制造一个界面功效:

          MVC的一般履行流程

          从我们举例中,我们可以看见类与类之间直接进行交互,会造成高度的耦合,不便利保护与扩大,通过MVC框架可以减低程序的耦合性。而且在大范围的项目中MVC框架还可以让不同人员进行协同开发,例如:分配三个人分辨去写,View视图层的业务逻辑、Controller层的业务逻辑、Model层的业务逻辑,而不须要让一个人去处置全部功效,这样可以晋升开发效力,缩短项目研发的周期。

          5.MVC的基本代码:

          MVC基本类图:

          如何在代码中实现MVC的基本代码:

          Model.cs /**************************************************** 文件:Model.cs 作者:小小泽 邮箱:1245615197@qq.com 日期:2021.5.26 功效:Model层代码 *****************************************************/ using UnityEngine; public class Model { private UnityAction<Model> updateEvent = null; private static Model _model = null; public static Model GetModel { get { if (_model == null) _model = new Model(); return _model; } } public void Init() { } public void AddData() { } public void ChangeData() { } public void DelData() { } public void SaveData() { updaeInfo(); } public void AddEvent(Model function) { updateEvent += function; } public void RemoveEvent(Model function) { updateEvent -= function; } private void UpdateInfo() { if(updateEvent != null) { updateEvent(this); } } } View.cs /**************************************************** 文件:View.cs 作者:小小泽 邮箱:1245615197@qq.com 日期:2021.5.26 功效:View层代码 *****************************************************/ using UnityEngine; public class View : MonoBehaviour { public void Init() { } public void UpdateInfo(Model data) { } } Controller.cs /**************************************************** 文件:Controller.cs 作者:小小泽 邮箱:1245615197@qq.com 日期:2020.5.26 功效:Controller层代码 *****************************************************/ using UnityEngine; public class Controller : MonoBehaviour { private View view = null; private Model model = null; public static Controller _ctrl; private void Awake() { _ctrl = this; } public void Init() { } private void Start() { view = GetCompent<View>(); model = GetCompent<Model>(); } private void OnClickListener(Model data) { } private void OnDestoryed() { Model._model.RemoveEvent(OnClickListener); } }