天天看点

Android开发MVP与MVC的区别

Android体系

Android开发MVP与MVC的区别

Android三种结构模式

1、在Android开发中,我们通常会去将项目分成一个个的模块文件夹,

来进行管理维护,有的人是直接按照功能来分模块,这也是最常见的,

有的人则会按照一定的设计模式,再结合功能来进行项目模式设计,

比如MVC,MVP、MVVM。

2、主讲MVP和MVC的区别

MVC的的结构模式

Android开发MVP与MVC的区别

1、从中很容易看出MVC的大致流程,

用户通过操作View来发送用户请求;

Controller接收到 用户请求 后,

负责决定应该调用哪个Model来进行处理;

然后Model根据用户请求进行相应的业务逻辑处理,

并返回数据;

最后Controller调用相应的视图View

来显示Model返回的数据。

MVP的结构模式

Android开发MVP与MVC的区别

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

继续阅读