MVP前奏(二)MVC在Android的小短腿

本文探讨了传统MVC架构在Android开发中的局限性,特别是Activity在模型视图控制器(MVC)模式中承担多重职责导致的耦合问题,并介绍了当前流行的MVP和MVVM框架如何解决这些问题。

首先,这是我的一家之辞,做个参考就好。

这个作为MVP的前篇,就是说一下MVC在Android中的不足之处。

在Android中,M这个好说,它是面向对象的产物,它就是抽象出来对象,程序员在程序里可以有很多对象(是对象,不是女朋友!),在说白了就是个表示数据结构的类。在MVP和MVC中几乎没差别。

V这个模块,因为Android代码的特性,activity作为活动会表现在最上层,它可以被看作是V的,但是大家的逻辑代码通常也在activity中,这里来看,它又是属于C的;就“activity”这个词来说,我更倾向它是属于V的。自定义的View都是属于V的这个没啥大的争议。事实上activity中VC处于比较严重的交叉状态。

C作为控制器,在Android中有时候可以到处看到,简单的说个adapter,这个玩意是绑定数据用的,属于C的范围。Adapter当然可以独立的写在一个类中,但是当你有些晦涩的数据的时候,还是在activity中来个内部类简单。VC又混在了一起。当你在adapter中使用Viewholder,又是V的范畴。其他的一些属于C的东西,也常会放置在activity中。

来一张自己画的丑到难受的图:



从这样看,activity的特殊性,也就是它几乎VC都有的情况,带了一个问题,不容易解耦,当M有点小变化,你可能要改activity,当C有变化,又可能改activity,V有变化,还是要改activity......

传统的MVC这一套在Android上,存在解耦方面的不足表现。于是需要新的优化的东西来处理一下或者说弥补一下这个不足。

到这里里提一下Android上目前流行的有两个框架:MVP和MV’VM’。’VM’引起来是说它们是一个东西,而不是两个,因为我最初看到时我就误解了。

MVP和MVVM只是MVC的变种。本质还是MVC。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

公贵买其鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值