U3D MVC思想的应用(一)

曾经有过在玩家类中写上几千多行代码的经历,当时也没有MVC分层思想,虽然敲的很爽,但是后果也很严重,根本没有可读性可言,最后还是老老实实的用MVC。
目前unity商业游戏开发,主要分为三大方向:面向对象开发,面向框架开发,面向组件开发(ECS)虽然ECS在unity游戏开发运用的并不是那么广泛,或许是未来发展趋势。不只是游戏开发,绝大多数开发都脱离不了MVC思想。

什么是MVC?

View 视图层(顶层)

UI场景中的一些表现
说明:View不能对M层的数据进行更改 但是可以访问M层的数据
功能:
1、数据的展现
2、管理面板逻辑
3、实现用户按钮操作逻辑

Controller 控制层(中层)
说明:对Model层具有访问和修改的权限。
功能:
1、根据逻辑对Model层的数据进行修改。
2、回调View的方法通知操作完成或者失败

Model 数据层 (底层)
应用主题部分的业务数据 和业务逻辑
说明:位于Frame最底层,属于数据中心
功能:
1、存放数据
2、提供修改访问数据的方法
3、通知View层数据已经发生改变,需要更新界面(通过事件)

MVC的优点

1、提高代码可读性,封装性,拓展性
2、提高工作效率
3、低耦合性

缺点:
mvc核心思想就是分层,降低耦合性,这三层继续细分的话,让每个类只干一件事,那。。代码量会增加很多,也可能会影响游戏性能,但可维护性肯定也会很好,有得必有失

MVC的应用

MVC也没有太准确的定义,每个人运用各不相同,主要围绕的思想还是分层
*这张图很明了的解释了MVC的运用:用户通过控制器用某种方式触发事件,C层去访问M层数据,M层数据更新到V层,最后反馈给用户。大概就是这个意思这张图好像不太适合游戏
U3D MVC思想的应用(一)
对于游戏开发用到的的MVC,这个张图解释的非常到位
U3D MVC思想的应用(一)
这篇先讲到这,继续填坑,这篇先说原理,下一篇上代码