当前位置: 首页 > news >正文

鸿蒙游戏为什么不能继续用传统 MVC?

子玥酱(掘金 / 知乎 / CSDN / 简书 同名)

大家好,我是子玥酱,一名长期深耕在一线的前端程序媛 👩‍💻。曾就职于多家知名互联网大厂,目前在某国企负责前端软件研发相关工作,主要聚焦于业务型系统的工程化建设与长期维护。

我持续输出和沉淀前端领域的实战经验,日常关注并分享的技术方向包括前端工程化、小程序、React / RN、Flutter、跨端方案
在复杂业务落地、组件抽象、性能优化以及多端协作方面积累了大量真实项目经验。

技术方向:前端 / 跨端 / 小程序 / 移动端工程化
内容平台:
掘金、知乎、CSDN、简书
创作特点:
实战导向、源码拆解、少空谈多落地
文章状态:
长期稳定更新,大量原创输出

我的内容主要围绕前端技术实战、真实业务踩坑总结、框架与方案选型思考、行业趋势解读展开。文章不会停留在“API 怎么用”,而是更关注为什么这么设计、在什么场景下容易踩坑、真实项目中如何取舍,希望能帮你在实际工作中少走弯路。

子玥酱 · 前端成长记录官 ✨
👋 如果你正在做前端,或准备长期走前端这条路
📚 关注我,第一时间获取前端行业趋势与实践总结
🎁 可领取11 类前端进阶学习资源(工程化 / 框架 / 跨端 / 面试 / 架构)
💡 一起把技术学“明白”,也用“到位”

持续写作,持续进阶。
愿我们都能在代码和生活里,走得更稳一点 🌱

文章目录

    • 引言
    • 一、MVC 是为“页面”设计的
    • 二、游戏和管理系统根本不是一回事
    • 三、Controller 为什么一定会变胖?
    • 四、Controller 的本质问题
    • 五、鸿蒙游戏真正需要的是什么?
    • 六、Controller 管流程,System 管规则
    • 七、状态驱动 VS 页面驱动
    • 八、多端场景下 MVC 更容易崩
    • 九、AI 时代进一步淘汰 Controller
    • 十、一个典型重构案例
    • 十一、MVC 最大的问题不是老
    • 十二、一个关键认知升级
    • 总结

引言

如果你做过传统客户端开发,大概率接触过 MVC:

Model View Controller

很多人第一次做鸿蒙游戏时,也会下意识这样设计:

PlayerModel PlayerView PlayerController

或者:

BattleModel BattleView BattleController

刚开始项目很小的时候:

没问题 甚至感觉很规范

但当游戏开始增加:

技能系统 任务系统 AI系统 多人同步 多端协同

MVC 很快就会暴露出一个问题:

Controller 开始无限膨胀。

最后你会看到:

BattleController 3000行

或者:

GameController 5000行

里面塞满了:

战斗逻辑 掉落逻辑 升级逻辑 AI逻辑 任务逻辑

这时候问题已经不是代码风格了,而是:

MVC 天生不适合承载复杂状态系统。

一、MVC 是为“页面”设计的

先理解一件事,MVC 出现的时代:

桌面软件 管理系统 CRUD应用

它解决的问题是:

用户操作界面 触发业务逻辑 更新界面

例如:

点击按钮 ↓ Controller ↓ Model ↓ View更新

这种模式非常适合:

表单 后台管理 办公软件

因为:

状态变化少 逻辑链路短

二、游戏和管理系统根本不是一回事

游戏运行时:

用户输入 AI输入 时间事件 网络事件

同时发生,例如:

玩家攻击 怪物攻击 Buff生效 技能冷却 经验增长

可能发生在同一时刻,这时候如果全部进入:

Controller

结果就是:

Controller成为总指挥

三、Controller 为什么一定会变胖?

看一个典型例子:

classBattleController{attack(){player.attack()enemy.takeDamage()level.addExp()drop.dropItem()mission.update()}}

刚开始:

几十行

后来:

几百行

最后:

上千行

因为:

所有业务都会往 Controller 聚集。

四、Controller 的本质问题

MVC 中:

Controller = 流程中心

意味着:

所有逻辑都要经过它

例如:

玩家升级

Controller知道。

任务完成

Controller知道。

Boss死亡

Controller也知道。

最后变成:

Controller知道整个世界

这就是经典的:

God Controller(上帝控制器)

五、鸿蒙游戏真正需要的是什么?

鸿蒙游戏更适合的模式是:

Store System UI

因为天然分离:

状态 规则 展示

例如,传统 MVC:

View ↓ Controller ↓ Model

System 架构:

Input ↓ System ↓ Store ↓ UI

看起来差别不大,但本质完全不同。

六、Controller 管流程,System 管规则

这是最核心的区别,MVC:

Controller: 负责决定做什么 负责决定怎么做 负责决定谁执行

System:

BattleSystem 只管战斗 LevelSystem 只管升级 DropSystem 只管掉落

每个系统:

只负责一个领域

复杂度被自然拆散。

七、状态驱动 VS 页面驱动

MVC 本质:

页面驱动

例如:

打开页面 ↓ Controller运行

鸿蒙游戏本质:

状态驱动

例如:

HP变化

直接:

UI更新

根本不需要:

Controller刷新页面

这与 ArkUI 的设计天然一致。

八、多端场景下 MVC 更容易崩

鸿蒙最大的特点共存:

手机 平板 PC TV

MVC 通常会变成:

PhoneController PadController PCController

甚至:

不同View 不同Controller

维护成本越来越高。

System 架构则是:

Store ↓ System ↓ 多个UI

例如:

手机UI 平板UI PC UI

共享:

同一套规则

九、AI 时代进一步淘汰 Controller

过去驱动业务:

用户点击

所以合理:

Controller

但未来:

用户 AI Agent 自动任务 网络同步

都在产生行为。

这时候:

Controller

已经无法承担统一入口。

System 更适合:

UserInput AIInput NetworkInput

统一进入:

System

处理。

十、一个典型重构案例

很多项目最初是:

GameController

负责:

战斗 升级 背包 任务 商城

最后:

5000+ 行代码

重构后:

BattleSystem LevelSystem MissionSystem InventorySystem ShopSystem

Controller消失。

只剩:

Engine

负责调度。

结果:

结构清晰 职责明确 扩展容易

十一、MVC 最大的问题不是老

很多人以为:

MVC 不好,因为过时了。

其实不是。

MVC 到今天依然适合:

后台系统 管理平台 表单应用

问题在于:

游戏已经不是页面系统。

游戏更像:

持续运行的状态机

而不是:

页面集合

十二、一个关键认知升级

初学者会觉得:

Controller控制游戏

但真正的大型游戏架构会变成:

Store保存世界状态 System定义世界规则 UI展示世界结果

Controller的重要性不断下降,甚至最终消失。

总结

传统 MVC:

Model View Controller

核心思想:

Controller驱动业务

而鸿蒙游戏更适合:

Store System UI

核心思想:

System驱动状态变化

如果用一句话总结:

MVC 适合“页面驱动的软件”,而鸿蒙游戏本质上是“状态驱动的世界”,因此最终一定会从 Controller 走向 System。

http://www.gsyq.cn/news/1449554.html

相关文章:

  • Windows Cleaner:终极免费C盘清理解决方案,彻底告别磁盘空间不足的烦恼
  • 量子强化学习框架与动态电路技术解析
  • 从Wi-Fi热点到白频谱网络:Victor Bahl的移动计算研究与实践启示
  • ThinkPHP5+GatewayWorker搭建的Laykefu客服系统,后台这几个安全漏洞你自查了吗?
  • JDY-31蓝牙串口透传模块实战:从硬件连接到无线通信测试
  • 给STM32新手的保姆级指南:从Keil5 MDK安装到ST-LINK驱动,一次搞定所有环境配置
  • 终极文档下载神器:kill-doc浏览器脚本实现文档自动化下载完整指南
  • 2026贵阳装修避坑|福旺居装饰企业全维度分析 业主真实口碑揭秘 - 资讯纵览
  • 告别PDF处理噩梦:3大核心功能让100份文档批量处理效率提升10倍
  • 3大Dify工作流痛点终极解决方案:50+模板一键解决AI应用开发难题
  • 基于micro:bit与YX5300模块的复古卡带音乐播放器DIY全攻略
  • Deepoc数学大模型:以低幻觉特性护航半导体精准设计与制造
  • 2026 年 6 月教资备考神器:真题软件高效提分实测 - 讲清楚了
  • VisualGGPK2终极指南:解决Path of Exile游戏更新后GGPK解析工具失效问题
  • GLM3多模态扩展:从纯文本到图像理解的未来发展方向
  • SwiftUI导航别再用错了!NavigationLink、Sheet、FullScreenCover实战场景选择指南(iOS 17+)
  • 2026 年郑州水质 / 环境 / 空气检测全攻略:认准 CMA 资质,避开 90% 的人都踩过的检测陷阱 - 资讯纵览
  • Qwen3.5-9B-Claude-4.6-Opus-Reasoning-Distilled-v2推理链分析:高效思维模式的实现原理
  • 2026年抖音运营推广服务商首选 南京微尚为您提供专业服务 - 资讯纵览
  • ARM架构AMEVTYPER1寄存器详解与性能监控实践
  • 麒麟V10 SP1软件商店报错0006?别急着重装,先检查这3个地方(附终端命令)
  • 2026年国产分体式电磁流量计十大品牌深度评测:技术参数、应用案例与选型指南 - 水质仪表品牌排行榜
  • 恒压供水远程控制系统:泵房无人值守,智慧二次供水落地
  • 2026 年中国桥梁检测车租赁公司深度研究 - 资讯纵览
  • Qwen2.5-Math-7B实战教程:用Python轻松实现复杂数学问题的AI求解
  • 黑龙江2026越野叉车租售首选推荐口碑信赖租售商家对比评测 - GrowthUME
  • 零基础构建MobileGPT:从编程入门到AI移动应用开发全流程
  • 如何快速掌握PoeCharm:流放之路build计算终极汉化指南
  • Obsidian-i18n:3步让你的Obsidian插件说中文,打破语言障碍的终极方案
  • 工业物联网必备!聚英云平台设备永久在线不宕机