Android开发MVP与MVC的区别-阿里云开发者社区

开发者社区> 开发与运维> 正文

Android开发MVP与MVC的区别

简介: 在Andrioid开发中使用MVP框架解决项目异常卡顿等问题

Android体系
image.png

Android三种结构模式
1、在Android开发中,我们通常会去将项目分成一个个的模块文件夹,
来进行管理维护,有的人是直接按照功能来分模块,这也是最常见的,
有的人则会按照一定的设计模式,再结合功能来进行项目模式设计,
比如MVC,MVP、MVVM。
2、主讲MVP和MVC的区别
MVC的的结构模式
image.png

1、从中很容易看出MVC的大致流程,
用户通过操作View来发送用户请求;
Controller接收到 用户请求 后,
负责决定应该调用哪个Model来进行处理;
然后Model根据用户请求进行相应的业务逻辑处理,
并返回数据;
最后Controller调用相应的视图View
来显示Model返回的数据。

MVP的结构模式
image.png
1、View发送指令给Presenter,
Presenter获取指令后,
调用响应的Model进行业务逻辑处理,
然后返回数据给Presenter,
Presenter根据Model
返回的数据再来调用相应的View

为什么不使用MVC
在Android中,对于Activity并没有明确的说它是属于View还是Controller的范畴,
Activity既有View的性质,
也具有Controller的性质,
所以导致MVC在Android中很难明确分工使用,
导致Activity很重。而且MVC中View会与Model直接交互,
所以Activity与Model的耦合性很高,当后期维护时,稍有变动,
可能Model、Activity、XML都会跟着改变,工作量很大,成本太高

使用MVP的好处

在MVP与MVC最大的不同之处是,
MVP将M与V分隔开来,通过P交互,这样在Android中,
就可以明确的把Activity当作View处理,
虽然可能还有一点逻辑在其中,但是已经无伤大雅;
View和Model不直接交互,当View有变动或者Model有变动时,不会相互影响有太大变动,
耦合性低,对于后期维护来说,特别是项目越来越庞大时,
可以很快的理清项目结构,找到需要修改的地方,大大的缩短了工作量。
而且,因为View与Model分离的缘故,Model可以单独进行单元测试。

版权声明:本文中所有内容均属于阿里云开发者社区所有,任何媒体、网站或个人未经阿里云开发者社区协议授权不得转载、链接、转贴或以其他方式复制发布/发表。申请授权请邮件developerteam@list.alibaba-inc.com,已获得阿里云开发者社区协议授权的媒体、网站,在转载使用时必须注明"稿件来源:阿里云开发者社区,原文作者姓名",违者本社区将依法追究责任。 如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

集结各类场景实战经验,助你开发运维畅行无忧

其他文章