跳至主要內容

mvc、mvp、mvvm在creator中的应用

muzzik大约 2 分钟文章设计模式MVC 模式MVP 模式MVVM 模式

# 前言

此篇教程贴对新手的帮助比较大,大佬们也可以随便看看
示例项目:

github(点击跳转)

gitee(点击跳转)

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

📣 觉得很赞?分享给你的朋友吧!