游戏 UI 框架设计概览¶
Unity 手游实战:从 0 开始 SLG——UI 框架篇(一)各种 UI 框架模型简介(试读篇) - 知乎 (zhihu.com)
MVC、MVVM、MVP M-V- X 本质都是一样的 重点还是在于 M-V 的桥梁,要靠 X 来牵线。
在相同技术栈下 能够实现的各种 X 都可以是大同小异的。
在不同技术栈下 相同的 X 可能实现都大相径庭,仅有非常抽象的流程类似。
MVC¶
优点: 局部生态的自给自足。考虑了大部分的交互和变更情况,并通过规定每个部分的职能来满足功能需求。
缺陷: 1.局部生态,数据(M 层)封闭,如果多个模块需要同一个数据块,数据之间的互通和重用性都非常的低效。
2.局部耦合,虽然在大的环境下实现了局部封闭,但是局部内的各个层之间的逻辑耦合还是很深。
MVP¶
有需求就要有变化,当一个需求只是个别现象的时候,你可以特殊处理、特殊对待。但需求大批量出现的时候,就得重新审视现在的实现是不是需要重构或者升级了。
MVP 即 Model-View-Presenter。
- Model 的工作就是完成对数据的操纵,数据的获取、存储、数据状态变化都是 model 层的任务,如网络请求,持久化数据增删改查等任务
- View 只处理视图相关,不做任何逻辑处理。
- Presenter 作为桥梁,处理所有二者之间的中转。
M-V-VM¶
1.使用 ViewModel 替代了 Presenter。
2.原本 P 和 V 一对一的关系现在变为 VM-V 一对多的关系。
这解决了什么问题呢?
1.VM 在一定程度上能够重用,就表示 M 层在一定程度上也可以复用了。
2.VM 一对多的关系,表示在类和文件的数量和管理上要减轻很多。
MVE¶
作为网络游戏来说,数据应该来自两个部分,一部分是策划编辑的数据,一部分是通过服务器下发的数据。界面通过注册事件来订阅指定的事件类型,数据中心通过和服务器之间的交互来获得或者改变数据,并根据需求推送指定的 Event,当界面关心的事件发生的时候,它有两个可能,一部分是动态变化的局部更新,可以通过事件带下来,另外一种是整体数据需要去数据中心获取。