RxJava——响应式编程

什么是Rx

  • ReactiveX是Reactive Extensions的缩写。
  • Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异步数据流。目前Rx支持大部分流行的编程语言, 比如Java、C#、PHP等。
    -Rx是一个函数库,让开发者可以利用可观察序列和LINQ风格查询操作符来编写异步和基于事件的程序。
    -可以这样定义:Rx = Observables + LINQ + Schedulers。
  • ReactiveX不仅仅是编程接口,更是一种编程思想的突破。Rx还影响了其它程序库、框架以及编程语言。

Rx模式——观察者模式

-创建:Rx可以方便的创建事件流和数据流;
-组合:Rx使用查询式的操作符组合和变换数据流;
-监听:Rx可以订阅任何可以观察的数据流并执行操作。

Rx优点——简洁

-函数式风格:Rx可以方便的创建事件流和数据流;
-简化代码:Rx的操作符可以将复杂的逻辑简化为很少的几行代码;
-异步错误处理机制:传统的try/catch没办法处理异步计算,Rx提供了合适的错误处理机制;
-轻松使用并发:Rx的Observables和Schedulers让开发者可以避免底层线程同步和各种并发问题。

什么是RxJava

RxJava是[ReactiveX](http://reactivex.io/)在JVM上的一个实现,也就是说RxJava就是一种用Java语言实现的响应式编程,来创建  基于事件的异步程序。

提升开发效率,降低维护成本一直是开发团队永恒不变的宗旨。近一年来国内的技术圈子中越来越多的开始提及RxJava,学习和掌握RxJava已经很有必要。RxJava能帮助我们简化代码逻辑,提升代码可读性。这对于提升开发效率、降低后期维护成本很有帮助。
RxJava正在Android开发者中变的也越来越流行。唯一的问题就是上手不容易,尤其是大部分人之前都是使用命令式编程语言。但是一旦你弄明白了,你就会发现RxJava真是太棒了。
本系列帮助你了解RxJava,希望你学完之后能够了解RxJava背后的思想(熟练掌握还需要多使用多实践),并且喜欢RxJava。

学习RxJava

响应式编程的主要组成部分是Observable、 operator和subscriber。一般响应式编程的信息流如下所示:
Observable-> Operator 01 -> Operator 02->Operator03 ->Subscriber
Observable是事件的生产者,Subscriber是事件最终的消费者。
因为Subscriber通常在主线程中执行,因此设计上要求代码尽可能简单,只对事件作出响应(不对事件和数据进行修改),而修 改事件的工作全部由 operator执行。
Observable observable = Observable.create(newObservable.OnSubscribe() {
      @Override
      public voidcall(Subscriber subscriber) {
      subscriber.onNext("hello word");
      subscriber.onCompleted();
  }
});
Observer observer =newObserver() {
      @Override
      public voidonCompleted() {
      System.out.println("onCompleted");
}
      @Override
      public voidonError(Throwable e) {
      System.out.println("onError");
}
      @Override
      public voidonNext(String s) {
      System.out.println("onNext=  "+ s);
}
};
 observable.subscribe(observer);

上面提到修改事件在operator中执行(下面代码)

observable.map(new Func1() {
           @Override
           public String call(String s) {
               return s+"  add content";
           }
       }).subscribe(observer);

你可能感兴趣的:(RxJava——响应式编程)