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

MVC、MVP、MVVM、MVPVM区别

作者: 放羊娃华振 | 来源:发表于2019-10-18 17:41 被阅读0次

每当开始一个项目的时候都会面对如何选择开发的架构。目前使用比较对多的是MVC、MVP、MVVM,MVPVM这中设计架构我也是今天才看到,所以对其大致学习了下。本文主要是介绍这几种架构的控制链、控制流向,View 的变化如何反馈到Model,Model的变化如何作用到View上。

一、MVC

View 持有Controller,View把事件传递给Controller,Controller 再去去触发Model层的事件,Model更新完数据(网络、本地数据)之后,从Model触发View的更新事件。


image.png
二、MVP

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


image.png
三、MVVM

MVVM又称状态机制,View和ViewModel 是双向绑定的,ViewModel 数据发生改变会直接作用到View视图上;View 把事件传递给ViewModel,ViewModel去对Model进行操作并接受更新,再把更新反馈到View上。


image.png
四、MVPVM

MVPVM 其实就是MVP的变种,加入了MVVM事件特性,增加了ViewModel,功能分类:
View:负责视图更新的操作。
Model: 负责数据处理,网络数据请求、本地数据获取。
Presenter: 负责业务逻辑处理,包括View和Model调用和事件分发。
ViewModel: 数据通信的桥梁,绑定View 和 Model,添加数据变更监视器。


image.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/jcthpctx.html