Simple RxJava 简单的RxJava实现

来源:互联网 发布:魔方拼图软件 编辑:程序博客网 时间:2024/06/11 09:09

RxJava是非常好的开源库,大家都懂的,为了学习它的源码,我按照源码抽出来最简单的几个概念,写了一个极简的RxJava,4个类,3个接口,能做到嵌套拉平,线程切换以及单个值的类型转换操作,其实基本上算照抄代码啦- - ),这里简单记录一下。

三个接口:Observe、OnSubscribe、Operator

Observe:相当于监听主题发出通知的回调,也可以理解为接受处理结果的地方,因为这个原因,比如:接受到一个String类型的通知/结果,之后再把这个结果变成int类型,然后再生成一个新的Observe返回,这就完成了最简单的变换,源码中有OnNext等回调接口,这里只保留一个OnNext,其他也是同理。

Operator:负责变换的接口,可以简单理解为把原Observe变成目标Observe的地方,这里只简单的使用了两个泛型,即只能实现单个变量的类型转换(当然扩展太多最终就成了RxJava本身)

OnSubscribe:是主题事件发生的地方,主题事件执行的地方,也算是被监听的对象,是Observable的核心部分,一般在生成Observable的时候指定,我们知道要实现链式调用,我们使用操作符后需要生成新的Observable返回,新的Observable其实只需要指定新的OnSubscribe即可,新的OnSubscible也只是使用各种Operator产生各种变换效果。

四个类:Observable、SwitchThreadOnSubscribe、TranslateOnSubscribe、MainThreadOperator

Observable:对外总接口,担当链式调用的节点,负责大部分对外功能的实现。

SwitchThreadOnSubscribe:切换线程的OnSubscribe,这里面可以传入各种切换线程的Operate,当然其他无关于类型转换的Operate都可以传入,这里用这个名字当然是以偏概全的,但是这里为举例子可以先这样叫。

MainThreadOperate:用于把一个Observe转换成在“MianThread”执行的Observe的操作符

TranslateOnSubscribe:执行各种类型转换的Operate的OnSubscribe

代码写的都很简单,算是极度化简了RxJava,只有化简了才更能看出原理吧

如下是项目地址:欢迎大家吐槽
https://github.com/libohan1312/simplerxjava

0 0
原创粉丝点击