logo
Published on

mvc、mvp、mvvm在creator中的应用

Authors
  • avatar
    Name
    Muzzik(马赛克)
    Twitter

# 前言

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

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