浅谈Android开放中的架构模式MVC和MVP的区别

浅谈Android开放中的架构模式MVC和MVP的区别

MVC架构模式

1.Model:模型层,负责处理数据的加载或者存储
2.View:视图层,负责界面数据的展示,与用户进行交互
3.Controller:控制器层,负责逻辑业务的处理

在 MVC 架构中,View 产生事件,通知到 Controller,Controller 中进行一系列逻辑处理,之后通知给 Model 去更新数据,Model 更新数据后,再将数据结构通知给 View 去更新界面。这就是一个完整 MVC 的数据流向。其实在 Android 开发中,其本身默认可以理解为 MVC 结构,把 View 放在 xml 中与 Java 代码解耦,然后 Activity / Fragment 充当 Controller 进行逻辑控制,但是 Android 本身并没有对 Model 进行划分,所以往往我们会让 Activity / Fragment 充当 Model 和 Controller 两个角色。而且往往 xml 中的 View 操作也是在 Activity / Fragment 中,导致有时候 Activity / Fragment 也会充当一些 View 的角色。


MVP架构模式

1.Model 模型,负责数据的加载和存储。
2.View 视图,负责界面的展示。
3.Presenter 控制器,负责逻辑控制。


采用MVP模式的优势是:

把业务逻辑抽离到Presenter层中,View层专注于UI的处理。
分离视图逻辑与业务逻辑,达到解耦的目的。
提高代码的阅读性。
Presenter被抽象成接口,可以根据Presenter的实现方式进行单元测试。
可拓展性强。
采用MVP模式的缺点:

项目结构会对后期的开发和维护有一定的影响。具体视APP的体量而定。
代码量会增多,如何避免编写过多功能相似的重复代码是使用MVP开发的一个重点要处理的问题。
有一定的学习成本。

二者的区别

MVP 和 MVC 最大的不同,就是 View 和 Model 不相互持有,都通过 Presenter 做中转。View 产生事件,通知给 Presenter,Presenter 中进行逻辑处理后,通知 Model 更新数据,Model 更新数据后,通知数据结构给 Presenter,Presenter 再通知 View 更新界面。
MVC的耦合性较高,View可以直接访问Model,导致三者之间构成了回路。所以两者的主要区别是,MVP中View不能直接访问Model,需要通过Presenter发出请求,View与Model不能直接通信

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值