開發與維運

Android开发MVP与MVC的区别

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可以单独进行单元测试。






Leave a Reply

Your email address will not be published. Required fields are marked *