【Unity(2)】unity开发的基本框架和经典的 MVC 架构模式

什么是架构?

架构是一个约定,一个规则,一个大家都懂得遵守的共识。那这是什么样的约定、什么样的规则、什么样的共识呢?

一个项目开始立项的时候,最常见的一个情况就是:几个人一个小团队,开始什么也不做,开始写代码,验证逻辑,然后 game 就开始写起来了。公司的一些的所谓的领导层一开始就把游戏定义为"我们要做的一个大作",那么这个事情本身就是一个笑话。没有任何的规划和设计,我们就妄图就写出一个所谓的杰出的作品出来是不现实的。Unity 再好用,以这个心态去做游戏,一定会写不出来好的游戏来。------刘钢《Unity 项目架构和开发管理》

看到视频中的这段话,需要建立最基本的规划,比如最常见的表现和逻辑的分离。

1 表现逻辑分离

我们大家都知道,做项目尽可能地要把表现和逻辑分离。而最常用最经典的方式就是使用 MVC。

经典的 MVC 架构模式

MVC 是在软件开发时最常用的架构模式,我想大家都应该接触过,所以 MVC 的概念在这里笔者不会浪费口舌去赘述,不了解的同学可以参阅阮一峰前辈的《谈谈MVC模式》http://www.ruanyifeng.com/blog/2007/11/mvc.html。

MVC是三个单词的首字母缩写,它们是Model(模型)、View(视图)和Controller(控制)。

这个模式认为,程序不论简单或复杂,从结构上看,都可以分成三层。

  • 1)最上面的一层,是直接面向最终用户的"视图层"(View)。它是提供给用户的操作界面,是程序的外壳。

  • 2)最底下的一层,是核心的"数据层"(Model),也就是程序需要操作的数据或信息。

  • 3)中间的一层,就是"控制层"(Controller),它负责根据用户从"视图层"输入的指令,选取"数据层"中的数据,然后对其进行相应的操作,产生最终结果。

这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口(Interface),供上面一层调用。这样一来,软件就可以实现模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。

我用Windows的计算器小程序为例,解释一下MVC模式,虽然它不一定使用这个模式编写。

在这个计算器程序中,外部的那些按钮和最上面的显示条,就是"视图层",那些需要运算的数字就是"数据层",执行加减乘除的那些内部运算步骤就是"控制层"。每一层执行不同的功能,整个程序的结构非常清楚。

如果我们扩大一点想象,就会发现,很多程序本质上都是这种模式:对外提供一组触发器(本例中是按钮),然后执行一些内部操作,最后返回结果。因此,MVC模式的应用是非常广泛的。

参考

https://www.cnblogs.com/liangxiegame/p/12557515.html

http://www.ruanyifeng.com/blog/2007/11/mvc.html

相关推荐
heimeiyingwang16 小时前
【架构实战】缓存一致性:Cache Aside与双写问题的破解
spring·缓存·架构
feiyu_gao18 小时前
别再让 AI 从零开始了
人工智能·架构·aigc
通问AI18 小时前
GPT-5.6 三模型架构深度解析:Sol/Terra/Luna 技术对比与工程落地指南
gpt·架构
QN1幻化引擎18 小时前
我写了一个「有八层意识结构」的 Python 认知引擎,它没有用任何 LLM
人工智能·算法·架构
还有多久拿退休金1 天前
AI 写了代码,谁替你"试毒"?
前端·架构·ai编程
玖玥拾1 天前
C# 语言进阶(十四)Unity UI界面开发 + 网络消息联动
服务器·开发语言·网络·ui·unity·c#·游戏引擎
Slice_cy1 天前
Docker 体系化完整知识框架(从构建到运行到编排)
架构
hbugs0011 天前
PNETLab vs EVE-NG Pro 流量洞察功能底层架构技术白皮书
网络·架构·eve-ng·bpf·流量洞察
冷de猫1 天前
AI API 网关的四层架构与代码实现:以 Aegisy 为例
人工智能·架构·大模型·ai编程·ai网关·api代理·多模型接入
野区捕龙为宠1 天前
Unity 持久化数据
unity·游戏引擎·lucene