专栏名称: 郭霖
Android技术分享平台,每天都有优质技术文章推送。你还可以向公众号投稿,将自己总结的技术心得分享给大家。
目录
相关文章推荐
复利大王  ·  某航离谱瓜! ·  3 小时前  
复利大王  ·  某一线女网红下海? ·  3 小时前  
复利大王  ·  老同学中捞一捞能不能找到免费P友 ·  昨天  
复利大王  ·  不讲武德!中x银行? ·  昨天  
鸿洋  ·  务必立即拿下软考证(政策红利) ·  2 天前  
51好读  ›  专栏  ›  郭霖

关于RxJava最友好的文章

郭霖  · 公众号  · android  · 2016-11-22 08:00

正文

请到「今天看啥」查看全文



观察上图,其实已经很明了了,不过需要指出一下几点( 对于下面理解RxJava很重要 ):

  • 开关(被观察者)作为事件的产生方(生产“开”和“关”这两个事件),是主动的,是整个开灯事理流程的起点。

  • 台灯(观察者)作为事件的处理方(处理“灯亮”和“灯灭”这两个事件),是被动的,是整个开灯事件流程的终点。

  • 在起点和终点之间,即事件传递的过程中是可以被加工,过滤,转换,合并等等方式处理的(上图没有体现,后面对会讲到)。

我必须苦口婆心的告诉你:我们总结的这三点对于我们理解RxJava非常重要。因为上述三条分别对应了RxJava中被观察者(Observable),观察者(Observer)和操作符的职能。而 观察者模式又是RxJava程序运行的骨架

好了,我假设你已经完全理解了我上面讲述的东西。我们正式进入RxJava!

RxJava也是基于观察者模式来组建自己的程序逻辑的,就是构建 被观察者(Observable),观察者(Observer/Subscriber) ,然后建立二者的订阅关系(就像那根电线,连接起台灯和开关)实现 观察 ,在事件传递过程中还可以 对事件做各种处理

Tips: Observer是观察者的接口, Subscriber是实现这个接口的抽象类,因此两个类都可以被当做观察者,由于Subscriber在Observe的基础上做了一些拓展,加入了新的方法,一般会更加倾向于使用Subscriber。

创建被观察者

  • 正常模式:


这是最正宗的写法,创建了一个开关类,产生了五个事件,分别是:开,关,开,开,结束。

  • 偷懒模式1:

Observable switcher=Observable.just("On","Off","On","On");
  • 偷懒模式2:

String [] kk={"On","Off","On","On"};
Observable switcher=Observable.from(kk);

偷懒模式是一种简便的写法,实际上也都是 被观察者 把那些信息"On","Off","On","On",包装成onNext("On")这样的事件依次发给 观察者 ,当然,它自己补上了onComplete()事件。

以上是最常用到的创建方式,好了,我们就创建了一个开关类。

创建观察者






请到「今天看啥」查看全文