文章目录
1.Rxjava是什么
2.Rxjava的优点
3.Rxjava的实现
4.观察者模式
5.RxJava 的观察者模式
1.Rxjava是什么?
- 官方文档
RxJava 的本质可以压缩为异步这一个词,它是一个可以实现异步操作的库。
它是一种响应编程模式,其中一个关键的概念是事件。事件可以被等待,可以触发过程,也可以触发其它事件。
2.Rxjava的优点
- 它优于其他实现异步的方法便是它的简洁性,并且能够随着程序逻辑变得越来越复杂的时候,它依然能够保持简洁。
3.Rxjava的实现
- RxJava的实现,是一种从上到下的链式调用,没有任何嵌套,这在逻辑的简洁性上是具有优势的。当需求变得复杂时,这种优势将更加明显。RxJava的异步实现,是通过观察者模式来实现的。
4.观察者模式
- 注意,观察者模式并不意味着每时每刻都在“观察”中,而是采用注册(Register)或者称为订阅(Subscribe)的方式,告诉被观察者:我需要你的某某状态,你要在它变化的时候通知我。
一个比较典型的例子是点击监听器 OnClickListener 。对设置 OnClickListener 来说, View 是被观察者,OnClickListener 是观察者,二者通过 setOnClickListener()方法达成订阅关系。订阅之后用户点击按钮的瞬间,Android Framework 就会将点击事件发送给已经注册的OnClickListener 。
采取这样被动的观察方式,既省去了反复检索状态的资源消耗,也能够得到最高的反馈速度。
5.RxJava 的观察者模式
-
RxJava 有四个基本概念:Observable (被观察者)、 Observer (观察者)、
subscribe (订阅)、Event事件。Observable 和 Observer 通过 subscribe() 方法实现订阅关系,从而 Observable 可以在需要的时候发出事件来通知 Observer。RxJava 的事件回调方法除了普通事件 onNext() (相当于 onClick() /
onEvent())之外,还定义了两个特殊的事件:onCompleted() 和 onError()。onCompleted(): 事件队列完结。RxJava 不仅把每个事件单独处理,还会把它们看做一个队列。RxJava规定,当不会再有新的 onNext() 发出时,需要触发 onCompleted() 方法作为标志。
onError():事件队列异常。在事件处理过程中出异常时,onError() 会被触发,同时队列自动终止,不允许再有事件发出。
在一个正确运行的事件序列中, onCompleted() 和 onError()有且只有一个,并且是事件序列中的最后一个。需要注意的是,onCompleted() 和 onError()二者也是互斥的,即在队列中调用了其中一个,就不应该再调用另一个。