mvc、mvp、mvvm在creator中的应用
大约 2 分钟
# 前言
此篇教程贴对新手的帮助比较大,大佬们也可以随便看看
示例项目:
MVC
简单的介绍下,MVC 其实是 model、view、controller 的分离,但是发现没有,网上的很多 MVC 的调用关系都不一样,如下图
其实只要符合model、view、controller架构的都是mvc
model: 数据层
view:视图层(只存在视图方法)
controller:业务逻辑层(C 中不应该出现直接控制视图的逻辑,而是通过数据(设计图一)或者事件(设计图二)去驱动视图
小提示
- 层与层之间的交互尽量使用回调或者去使用消息机制去完成,尽量避免直接持有
示例项目中采用第一结构图
MVP
model:数据层(只与 P 交互)
view:视图层(只与 P 交互)
presenter:业务逻辑层(负责数据的更新以及视图的更新)
MVP 和 MVC 最大的区别就是完全隔离了 model 和 view,但是也造成了一个问题,presenter 的臃肿
示例项目中采用第二结构图
MVVM
model:数据层(只与 VM 交互)
view:视图层(只与 VM 交互)
viewModel:业务逻辑层(负责视图和数据之间的绑定)
咋一看和 MVP 的结构并没有什么区别,但是他们区别在于内部的使用,VM 负责的是将 V 和 M 绑定,然后操作 M 即可实现 V 的更新,这一点可以免去手动派发事件,添加事件,也避免了程序上的疏漏(比如忘记派发更新视图事件)
以上均为个人理解,仅供参考,如有疏漏错误望告知
个人感悟
- 最快的方式,单脚本开发
- 适合换皮的架构,MVC
- 适合展示数据多的架构,MVVM