RxJava概述

14 篇文章 1 订阅

ReactiveX

ReactiveX是利用可观察数据流实现异步编程的API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

RxJava: Reactive Extensions for the JVM

RxJava是Reactive Extensions的Java VM实现,它是一个使用可观察序列编写异步和事件驱动程序的库。它扩展了观察者模式以支持数据和事件序列,并且加入操作符Operator。它将你的注意从低级别线程,线程同步,线程安全和并发数据对象这些复杂问题中转移。

RxJava Package & Class & Interface

1. rx.annotations

2. rx.exceptions

3. rx.functions

所有的Func和Action都继承于Function。

public interface Function {

}

Action0、Action1<T1>、...、ActionN:数字代表方法参数的个数。接口Action2<T1, T2>如下

package rx.functions;

public interface Action2<T1, T2> extends Action {
    public void call(T1 t1, T2 t2);
}

Func0<R>、Func1<T1, R>、...、FuncN<R>:数字代表方法参数的个数,R表示返回值类型。接口Func2<T1, T2, R>如下:

public interface Func2<T1, T2, R> extends Function {
    public R call(T1 t1, T2 t2);
}

Functions和Actions为生产Func、Action的工厂。

该包的UML类图如下:
这里写图片描述

4. rx.internal

5. Observable与rx.observables

在ReactiveX中,Observer订阅Observable。然后这个Observer对这个Observable释放的数据或数据序列进行响应。这个模式使并发操作变得便利,因为它等待Observable释放数据对象时不需要阻塞,取而代之的是它创建一个Observer形式的哨兵,这个哨兵随时准备响应。

6. Observer与rx.observers

Observer提供了接收基于推模型(push)通知(notification)的机制。在Observable订阅(subscribe)了Observer后,Observable通过调用Observer的onNext方法提供通知。一个正常的Observer将只会调用onCompleted或onError方法一次。

package rx;

public interface Observer<T> {

    public abstract void onCompleted();

    public abstract void onError(Throwable e);

    public abstract void onNext(T t);

}

7. rx.plugins

8. Scheduler与rx.schedulers

9. Subject与rx subjects

Subject在ReactiveX是作为observer和observerable的一个bridge或者proxy。因为它是一个观察者,所以它可以订阅一个或多个可观察对象,同时因为他是一个可观测对象,所以它可以传递和释放它观测到的数据对象,并且能释放新的对象。
一共有四种为不同用途而设计的Subject,分别为AsyncSubject、BehaviorSubject、PublishSubject和ReplaySubject。

package rx.subjects;

import rx.Observable;
import rx.Observer;
import rx.Subscriber;

public abstract class Subject<T, R> extends Observable<R> implements Observer<T> {
    protected Subject(OnSubscribe<R> onSubscribe) {
        super(onSubscribe);
    }

    public abstract boolean hasObservers();

    public final SerializedSubject<T, R> toSerialized() {
        return new SerializedSubject<T, R>(this);
    }
}

10. Subscription、Subscriptions与rx.subscriptions

Subscription是Observable.subscribe(Subscriber)方法返回的对象,可以通过此对象取消订阅。
Subscriptions是一个工具类,其中有一些创建和使用Subscription对象的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值