Rxjava+Retrofit+okhttp+mvp实现
来源:互联网 发布:linux eclipse 安装 编辑:程序博客网 时间:2024/05/18 18:44
最近在学习的网络框架搭建,在网上看了不少的博客,有着各种各样的封装思路,看的实在是激情四射,乘热打铁,赶紧把学到的知识记录下,下面正式开始
关于rxjava,retrofit,okhttp,网上有大量的文章,这里就不做概述,主要是想来谈谈mvp
MVC
何为MVP,相信大家都能说得出一二,灵活,方便维护,解耦等,在说MVP之前,先来说说MVC
通常我们在开发项目之中,开始之初项目还小,所以使用mvc框架反而更轻松,但是随着项目不断迭代,变大很大,这时候mvc反而让代码难以维护,所以为了项目以后着想,mvc这种设计模式已经不太适合去开发,这里引用stormzhang一篇文章,里面对mvc有着详细的介绍:http://mp.weixin.qq.com/s/GuO5wdo2rJgvHH6mErLgqw
MVP
mvp是在mvc的基础上进行演化而来,它分离了view层和model层,中间通过presenter来进行通信,也就是说各层做各层的事情,互不干扰,最后通过中间人去传递,这样就大大的提高的代码的可读性以及维护性,但相对而言,就需要写很多的类和方法,所以说,如果项目不大,并且迭代不多的情况下,可以考虑用mvc,反之就mvp吧,当然也可以用mvvm,clean,下面开始正文
我们基于mvp模式去设计的,所以我们得创建mvp用到的东西,先看项目结构
并不多,bean目录主要是存放我们的实体类,model主要是需要做的方法,net就是网络的一些设置,presenter就是桥梁,service就是rxjava的接口,util是些用到的工具类,view则是展示给用户,好了有了这些怎么去实现?
其实就是根据之前的封装而改的,可以参考下我前篇文章《基于RxJava和Retrofit的二次封装》http://www.jianshu.com/p/4b7517d497dd
味道还是那个味道,只是请求的方式不太一样而已
model
可以看到,我们把之前请求数据的类变成了model层,这层主要是跟网络打交道
presenter
这层是链接了model和view层,用户处理事件时,直接调用doLogin方法,得到结果之后,就回调view来展示给用户
view
Activity
总体的就是这样,项目已经上传github,有兴趣的可以下载来看看
https://github.com/ReturnYhh/Rxjava-Retrofit-okhttp-mvp
- Rxjava+Retrofit+okhttp+mvp实现
- RxJava+Retrofit+OkHttp+mvp
- mvp+rxjava+retrofit+okhttp
- MVP+Retrofit+Okhttp+RxJava
- Retrofit+Rxjava+Okhttp+MVP
- 终极封装 Rxjava+Retrofit+okhttp+mvp实现
- 简单MVP-Retrofit-Rxjava-OKhttp
- 使用rxjava,retrofit,okhttp实现mvp模式的数据解析
- mvp demo:mvp+rxjava+retrofit(okhttp)+greendao
- RxJava+okhttp+Retrofit+Mvp 的封装
- 网络请求框架 Rxjava+ReTrofit+okHttp+MVP
- rxjava+retrofit+okhttp+mvp 简单实践
- MVP+Retrofit+RxJava+Okhttp拦截器
- MVP+Retrofit+RxJava+Okhttp拦截器
- MVP+Rxjava+Okhttp+Retrofit+XRecyclerview请求数据
- Okhttp+Retrofit+Rxjava+MVP联合使用
- MVP泛型+RecyclerView+Retrofit+OkHttp+RxJava
- MVP+Retrofit+RxJava实现分类
- 安卓面试题总结
- iOS开发-底层篇-Class详解,ios底层-class详解
- JavaScript模块化编程
- gulp+browser-sync使用方法
- CString char* String 之间的转化
- Rxjava+Retrofit+okhttp+mvp实现
- POJ计算鞍点
- ftp以root登录出现"530 Login incorrect"
- ios应用提交上架被appstore拒绝的十大理由
- js typeof
- 90. Subsets II
- 执行类方法时JVM会执行什么过程?
- java(Android):windows系统 ProtoBuf(3.1.0)编译及使用
- MySQL主从复制搭建之一,从头搭建