从零开始的Android新项目3 - 谁告诉你MVP和MVVM是互斥的

前言

去年5月左右的时候,笔者在逛GitHub的时候,看到了一个MVP的项目,叫做mosby,仔细看了源码和作者介绍的文章后,发现确实有点意思,虽然会需要多写几个类和方法,但是解决了activity/fragment过重的问题,通过V/P分离能够帮助提高可维护性。时至去年年底,今年年初,MVP才逐渐被大家所知,也不时看到些文章介绍其概念和实践。

再说说MVVM (Model-View-ViewModel),在Android上对应data binding。即ViewModel到View的映射,不需要再去自己找到view,然后更新字段,而是在映射建立后直接更新ViewModel然后反映到View上。

值得一提的是,MVP和MVVM都是微软提出的理念,最早都是在WPF里面被应用的,只是时至今日才在Android上被真正用起来。本文不是来介绍这两个的,所以不再赘述,讲讲正题。

在本系列首篇中我曾经提到过在我设计的新应用中,采用了MVP+MVVM的混合(当初也考虑过Flux,但感觉并不合适Android),后来有一次CJJ同学和我探讨这个架构的时候,问到了我有没有什么正式的名字,我就有楞,因为这个组合和应用是我自己设计的,所以还真没想过这个问题,Google一搜,还真有这么个东西(见参考资料,文章写得很棒,建议英文不错的同学读一读)!

这就是本文我要介绍的东西,MVPVM (Model-View-Presenter-ViewModel)。

Quick glance

以下所有Model,并不单单指的是Bean,而是Model层,更像是repository或者business logic。

MVC

MVC: View持有Controller,传递事件给Controller,Controller由此去触发Model层事件,Model更新完数据(如从网络或者数据库获得数据后)触发View的更新事件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值