Android之MVP与MVC、MVVM的区别


1.MVC特点:

  • 用户可以向View发送指令,再有View直接要求Model改变状态
  • 用户也可以直接向Controller发送指令,再由Controller发送给view
  • Controller起到事件路由的作用,同时业务逻辑都部署在controller中

MVC图示:

这里写图片描述

由上图可以看到,MVC的耦合性还是相对较高,View可以直接访问model,导致3者之间构成回路,因此MVP与MVC最主要的区别就是,MVP中的View不能直接访问Model,需要通过Presenter发送请求,View与Model不能直接通信,基本达到了解偶。

2.MVVM特点:

MVVM图示: 
这里写图片描述

MVVM与MVP非常相似,唯一的区别是View和Model进行双向绑定,两者之间有一方发生变化则会反应到另一方上。而MVP与MVVM的主要区别则是,MVP中的View更新需要通过Presenter,而MVVM则不需要,因为View与Model进行了双向绑定,数据的修改会直接反应到View角色上,而View的修改也会导致数据的变更,此时,ViewModel角色需要做的只是业务逻辑的处理,以及修改View或者Model的状态。MVVM模式有点像ListView与Adapter、数据集的关系,这个Adapter就是ViewModel角色,它与View进行了绑定,又与数据集进行了绑定,当数据集发生变化时,调用Adapter的notifyDataSetChanged之后View就能直接更新了,他们直接没有直接的耦合,是的ListView变得更灵活。

以上就是他们的主要区别了。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值