MVC,MVP和MVVM的区别

MVC,MVP和MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式,查找相关资料,本篇文章是借鉴相关资料对MVC,MVP和MVVM的进行总结,加深自己对这几种模式的理解,便于查看。
借用一张图来直观地表示这三种模式:
这里写图片描述
图片来源于这篇文章

MVC

Model:数据存储,View:用户界面,Controller:业务逻辑
这里写图片描述
View 传送指令到 Controller;Controller 完成业务逻辑后,要求 Model 改变状态;Model 将新的数据发送到 View,用户得到反馈。
MVC模式是单向交互。

MVP

这里写图片描述
View:Android中的Activity。同时需要创建一个View的抽象接口View interface。需要View实现的接口,View通过View interface与Presenter进行交互,降低耦合。
Model:用来操做实际数据(譬如数据存储等)。有时也需要创建一个Model的抽象接口Model interface用来降低耦合。
Presenter:作为View与Model交互的中间纽带,处理与用户交互的负责逻辑。

MVVM

MVVM模式中,一个ViewModel和一个View匹配,它没有MVP中的IView接口,而是完全的和View绑定,所有View中的修改变化,都会自动更新到ViewModel中,同时ViewModel的任何变化也会自动同步到View上显示。
这种自动同步之所以能够的原因是ViewModel中的属性都实现了observable这样的接口,使绑定的UI自动刷新。
关于MVVM的详解请参考这篇文章
参考文档:
https://blog.csdn.net/yanbober/article/details/45645115
https://www.jianshu.com/p/2fc41a310f79?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值