美文网首页
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区别

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