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<String, String>() {
           @Override
           public String call(String s) {
               return s+"  add content";
           }
       }).subscribe(observer);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,937评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,503评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,712评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,668评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,677评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,601评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,975评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,637评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,881评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,621评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,710评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,387评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,971评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,947评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,189评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,805评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,449评论 2 342

推荐阅读更多精彩内容