android一个简单又实用的MVP+OkhttpUtils实现的项目架构

本文介绍了一个基于MVP架构和OkhttpUtils的简易demo。MVP将业务逻辑从Activity中分离出来,使代码更易于管理和维护。文中详细讲述了MVP的基本概念及其与MVC的区别,并提供了一个具体的实现案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天分享一个封装的MVP和网络框架OkhttpUtils实现的简单demo

我这里主要参考下面大神的思路进行的封装,这里讲述了一个高级MVP架构的演变过程,链接地址如下

高级mvp架构演变过程

我的demo是根据上面链接的思路加上okhttpUtils组合实现,能使用于绝大部分现实中项目的MVP架构(看demo之前请先看一下上面的演变过程)。
这里我将链接中的MVP架构分为普通和高级,demo中只实现的普通(大概是演变的前五步)的思路另外加上了一个抽象工厂创建presenter方法。
高级则利用了注解,工厂,代理和策略等模式封装,来进一步优化和解决问题,有兴趣可以学习一下高级MVP架构的封装过程并实用与项目中。
下面是demo链接地址,可以下载研究一下代码结构

github链接地址

MVP简介

一、mvp架构简介
View: 对应于Activity,负责View的绘制以及与用户交互
Model: 依然是业务逻辑和实体模型
Presenter: 负责完成View于Model间的交互
通俗的说法:
Activity 和Fragment 视为View层,负责处理 UI。
Presenter 为业务处理层,既能调用UI逻辑,又能请求数据,该层为纯Java类,不涉及任何Android API。
Model 层中包含着具体的数据请求,数据源。

MVP结构

View不直接与Model交互,而是通过与Presenter交互来与Model间接交互。Presenter与View的交互是通过接口来进行的。

在这里插入图片描述

MVP优缺点

MVP 模式将Activity 中的业务逻辑全部分离出来,让Activity 只做 UI 逻辑的处理,所有跟Android API无关的业务逻辑由 Presenter 层来完成,然后再通知Model去更新数据,然后显示在View中。将业务处理分离出来后最明显的好处就是管理方便,但是缺点就是增加了代码量。

Mvp对比MVC的好处和差异性

在MVC中:Model和View代表着业务逻辑与展示方式,Model和View往往是互相引用,改变展示方式的时候很有可能也要修改业务逻辑层,即修改Controller。因此为了去除这种弊端,需要做解耦,从而生成mvp,虽然MVP的使用比较麻烦了些,但是它的有点也是很明显的,Model和View充分解耦,修改一个不会牵扯到另外一个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值