【UI界面开发】MVC模式

文章目录

  • 概要
  • 什么是MVC模式
  • MVC模式各部分含义
  • MVC模式下的一般运行流程
  • MVC模式下的脚本管理

概要

  • MVC模式在网上查询和学习了挺多。在学习的过程中发现虽然前辈们的思想基本相同,但在具体实现的功能分类上略有区别。因此想以个人的浅薄经验做个总结。
  • 本文章仅仅是自己学习的一个总结,和MVC模式的专业解释必然有较大差异。

什么是MVC模式

  • 首先MVC模式是为界面开发,或者说网站开发这种纯功能性内容所服务的指导思想。因此它不适合于其他,如游戏中的即时战斗,其他的交互功能的开发。
  • 它将程序功能分为数据模型(Model),视图显示(View)以及处理控制(Controller)三大类。

MVC模式各部分含义

  • 其中数据模型可以从数据库知识的角度去看待,它相当于是一类数据的定义,存储了一系列数据,这些数据有可能是可读的,例如学生信息。有可能是不易读的,例如二进制数据等。
  • 视图显示则是用于显示数据的对外部分。通常它显示的内容和形式与数据模型大有不同,但也不排除相同的情况。从开发的角度,视图层通常代表着显示的UI控件,或者控制这些控件的程序代码。
  • 而处理控制则是作为视图层与数据模型层沟通的桥梁。它通常用于处理用户交互。一般的流程是用户交互,处理控制进行处理,对数据进行获取或更新操作,再将新的结果传给视图层以更新显示。它通常代表着可交互的UI控件或者控制这些控件的程序代码。

MVC模式下的一般运行流程

  • 初始化阶段,由Controller对Model中的数据进行读取,经过有条件地对数据进行处理(例如将一组代表图片索引的数值转化为对各个图片的引用)后通过View层提供的接口传递给View层进行显示。
  • 初始化完成后,用户与控件交互,如按钮,输入框,Toggle等,触发处理事件。此时Controller进行运作,对Model中的数据进行获取或更新。接着将结果通过View层提供的接口传递给View层进行显示。

MVC模式下的脚本管理

  • 一般来说,Model层可以针对不同系统的数据按系统进行分类,而View和Controller则可以以交互界面的面板为单位进行分类
  • 但是有时要处理的内容往往很复杂。如果是基于GUI的游戏的话,交互不仅仅要考虑功能性,还要考虑到游玩体验。因此Controller不仅仅要进行功能性的处理,还要实现界面中更复杂的交互,会使得Controller代码过大。
  • 个人而言,我比较喜欢将Controller分成两部分,把只针对Model进行存粹的功能性处理的部分与Model统一归类为后端,把进行显示的View层以及实现一些复杂交互的Controller部分归类为前端。

你可能感兴趣的:(#,UI界面开发,mvc,ui,架构,unity3d)