写在前面

retrofit大家都习惯使用,他是谷歌jetpack库提供的网络请求库。
rxjava的教程
https://www.jianshu.com/p/fce825833d36

目录

优点:分级有利于降低耦合度,将基础数据和需求数据的处理进行分离,只要专注于用不同的类(如Demo类)来实现即可
image.png

BaseResponse类

public data class BaseResponse(var res_code:Int ,
var err_msg:String ,
var demo:T) {
}
它是一个data数据类,自带了get和set方法和初始化方法以及toString方法
类型为T意味着传入的T可以是任意类,这样就避免了demo里数组嵌套等复杂的结构无法被初始化的问题

�BaseObserver类

public abstract class BaseObserver : Observer> {
private final var TAG = “BaseObserver”
override fun
onSubscribe(d: Disposable) {
Log.d(TAG,“onSubscribe: “)
}

  1. **override fun **onNext(response: BaseResponse<T>) {<br /> _//在这里对基础数据进行处理,比如<br /> _**if**(response.**res_code **== 200){<br /> onSuccess(response.**demo**)<br /> }**else**{<br /> }<br /> }
  2. **override fun **onError(e: Throwable) {<br /> Log.d(**TAG**,**"Throwable "**+ e.**message**)<br /> }
  3. **override fun **onComplete() {<br /> Log.d(**TAG**,**"onComplete: "**)<br /> }<br /> **public abstract fun **onSuccess(demo: T)<br /> **public abstract fun **onFailure(e: Throwable, error:String)<br />}<br />它是一个继承于rxJava的观察者Observer的抽象类,<br />重写onSubscribeonNext等方法<br />当观察者被被观察者订阅的时候(因为一个观察者只能对应一个被观察者没,一个被观察者可以对应很多观察者),会先执行自己的onSubscribe方法,然后调用被观察者的subscribe方法

Demo类(需求数据处理类)

/*
需求类的具体实现,对具体内容的处理等等

可以在里面写函数
/
public data class Demo(var id:String,
var appid:String,
var name:String,
var showtype:String) {

}