美文网首页MVVM
MVC、MVP、MVVM、MVPVM区别

MVC、MVP、MVVM、MVPVM区别

作者: BlackJava | 来源:发表于2018-09-12 23:16 被阅读176次

分析主要是通过它的控制链、控制流向,View 的变化如何反馈到Model,以及Model的变化如何作用到View上。

MVC

View 持有了Controller,把事件传递给Controller,Controller 由此去触发Model层的事件,Model更新完数据(网络或者本地数据)之后触发View的更新事件

MVC.png
MVP
MVP.png

咋看一下MVP只是MVC的变更版,把C层替换成了P层,实则不是这样的,最根本的是添加了Presenter层。

MVP1.png

MVP其实是MVC的封装和演化,Controller被拆分,只用它处理View的点击事件,数据绑定,等处理,而View被拆分,更加专注于视图的更新,只做跟视图相关的操作,而Presenter被独立出来,用于沟通View和Model之间的联系,Model不能直接作用于View 的更新,只能通过Presenter来通知View进行视图的刷新,比如showLoading(),showEmpty(),showToast()等等,这样View就完全被独立出来了,只是被动接受Presenter的命令,这样避免了View 有过多的逻辑处理,更加简单。Presenter持有了Model。Model 只用于处理跟数据获取相关的逻辑。

MVVM

又称状态机制,View和ViewModel 是进行绑定的,改变ViewModel 就会直接作用到View视图上,而View 会把事件传递给ViewModel,ViewModel去对Model进行操作并接受更新。

MVVM.png
MVPVM

可以看到MVPVM 其实就是MVP的变种,加入了MVVM事件特性,增加了ViewModel,功能分类:
View:只做视图更新操作
Model: 只做数据处理,网络数据 、本地数据
Presenter: 只做业务逻辑处理,View或者Model 事件分发
ViewModel: 绑定View 和 Model,添加数据变更监视器

MVPVM.png

相关文章

  • 开发模式

    对比mvc、mvp、mvvm、mvpvm blog.csdn.net/jdsjlzx/article/detail...

  • MVC、MVP、MVVM、MVPVM区别

    分析主要是通过它的控制链、控制流向,View 的变化如何反馈到Model,以及Model的变化如何作用到View上...

  • MVC、MVP、MVVM、MVPVM区别

    每当开始一个项目的时候都会面对如何选择开发的架构。目前使用比较对多的是MVC、MVP、MVVM,MVPVM这中设计...

  • MVC,MVP,MVPVM(一)实践之路

    文章目录 1.MVC,MVP,MVPVM(一)实践之路2.MVC,MVP,MVPVM(二)提升效率之Templat...

  • MVC,MVP,MVPVM(二)提升效率之Templates

    文章目录 1.MVC,MVP,MVPVM(一)实践之路2.MVC,MVP,MVPVM(二)提升效率之Templat...

  • iOS面试题

    1.MVC、MVP、MVVM的区别?MVC: MVVM: MVP: 2.自动布局有哪些?(1)Autolayout...

  • iOS:常见架构

    常见的架构有 MVC、MVP 和 MVVM。下面分别用代码做下演示。 MVC MVP MVP与MVC的区别在于:M...

  • MVC、MVP、MVVM

    MVC、MVP、MVVM 1、MVC和MVP的区别 区别在于MVC的MV之间可以通信,M的改变直接影响V的展示,不...

  • 框架模式:MVC、MVP、MVVM、MVPVM

    一、前言 早期开发没有任何概念,主要以实现需求为主,没有视图、没有模型、也没有控制器一说,功能逻辑和UI展示都杂糅...

  • [iOS] MVVM

    几种常见的架构,MVC、MVP、MVVM,下面说说区别以及MVVM代码 MVC 相信大家都熟悉这个框架,这个也是初...

网友评论

    本文标题:MVC、MVP、MVVM、MVPVM区别

    本文链接:https://www.haomeiwen.com/subject/xgnawftx.html