Android MVP详解

MVP (MVP 模式)

MVP的全称为Model-View-Presenter,Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理。MVP与MVC有着一个重大的区别:在MVP中View并不直接使用Model,它们之间的通信是通过Presenter (MVC中的Controller)来进行的,所有的交互都发生在Presenter内部,而在MVC中View会直接从Model中读取数据而不是通过 Controller。

MVP模式介绍

分层解析

  • Model:框架中的模型超类,负责提供数据;

  • View:框架中的视图超类,负责UI展示;

  • Presenter:程序中的逻辑超类,负责处理具体事务;

优势

  • 分离了视图逻辑和业务逻辑,降低了耦合。
  • Activity只处理生命周期的任务,代码变得更加简洁。
  • 视图逻辑和业务逻辑分别抽象到了View和Presenter的接口中,提高代码的阅读性。
  • Presenter被抽象成接口,可以有多种具体的实现,所以方便进行单元测试。
  • 把业务逻辑抽到Presenter中去,避免后台线程引用着Activity导致Activity的资源无法被系统回收从而引起内存泄露和OOM。

逻辑

将Activity(也就是将View和Controller合并为View)作为View,Model不变,并添加Presenter;View和Model不直接交互,而是使用Presenter作为桥梁。Presenter同时拥有View和Model的Interface引用,而View层有Presenter的Interface引用。当View层需要展示数据的时候,会调用Presenter层的接口,然后Presenter会调用Model请求数据,当Model层数据加载成功后会调用Presenter的回调方法通知Presenter层数据加载完毕,最后Presenter层会调用View层的接口将加载的数据展示给用户。

结构图如下
流程图

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值