RxJava概述
2015-06-25 23:14
681 查看
ReactiveX
ReactiveX是利用可观察数据流实现异步编程的API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。RxJava: Reactive Extensions for the JVM
RxJava是Reactive Extensions的Java VM实现,它是一个使用可观察序列编写异步和事件驱动程序的库。它扩展了观察者模式以支持数据和事件序列,并且加入操作符Operator。它将你的注意从低级别线程,线程同步,线程安全和并发数据对象这些复杂问题中转移。RxJava Package & Class & Interface
1. rx.annotations2. 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对象的方法。
相关文章推荐
- Head First -- 观察者模式
- hadoop-HBase-observer的一个例子
- Java 观察者模式( Observer Pattern)
- android设计模式--之观察者模式(Observer)
- Rxjava分析—Subject
- RxJava概述
- 函数式反应型编程(FRP) —— 实时互动应用开发的新思路
- 观察者模式
- 用RxJava.Observable取代AsyncTask和AsyncTaskLoader-RxJava Android模版
- 彻底了解RxJava(一)基础知识
- 观察者模式(Observer Pattern)
- 观察者模式lua实现
- 设计模式深入学习IOS版(7)观察者模式
- 实例讲解:Observable
- GoF23种设计模式之行为型模式之观察者模式
- Design Pattern - Observer(C#)
- 五分钟一个设计模式之观察者模式
- 观察者模式(java)浅析
- 我与C++设计模式(十五)——观察者模式
- RxJava的简介和简单使用