Android Rxjava:圖解不一樣的詮釋

Android心路歷程發表於2019-04-17

1.前言

  • Rxjava, 具有鏈式呼叫、使用簡單&事件與結果鬆耦合的特點。

  • Rxjava, 之所以深受歡迎它包含 非常多操作符,能通過 【鏈式形】 優雅整潔的程式碼幾乎能實現所有的功能需求

  • 本文特點:圖多字少邏輯簡單

  • 之前面試中被問了很多Rxjava的知識,今天獻一份不一樣詮釋,希望大家喜歡。

2.目錄

Android Rxjava:圖解不一樣的詮釋

3.簡介

Android Rxjava:圖解不一樣的詮釋

4.原理淺析

  • Rxjava,擴充套件自觀察者模式

4.1 生活例子

  • 通過手機叫外賣例子,分析一下rxjava的原理。

  • 叫外賣流程

Android Rxjava:圖解不一樣的詮釋
  • 涉及的角色與對應流程
Android Rxjava:圖解不一樣的詮釋

4.2 例子結合Rxjava

  • Rxjava,包含觀察者、被觀察者、訂閱行為&事件,與例子對應如下圖:
Android Rxjava:圖解不一樣的詮釋
  • 對應Rxjava基本使用程式碼:
  public void create(){
      Observable.create(new ObservableOnSubscribe<String>() {
          @Override
          public void subscribe(ObservableEmitter<String> e) throws Exception {
              e.onNext("烤雞一份");
              e.onNext("薯條一份");
              e.onNext("可樂一杯");
//                e.onError(new NullPointerException());
              e.onComplete();
          }
      }).subscribe(new Observer<String>() {
          @Override
          public void onSubscribe(Disposable d) {
              Log.e(TAG,"onSubscribe : 訂閱成功");
          }

          @Override
          public void onNext(String s) {
              Log.e(TAG,"onNext : 接收事件  "+s);
              //按順序得到:烤雞一份、薯條一份、可樂一杯
          }

          @Override
          public void onError(Throwable e) {
              Log.e(TAG,"onError : 事件異常  "+e.toString());
          }

          @Override
          public void onComplete() {
              Log.e(TAG,"onComplete : 事件執行完畢  ");
          }
      });
  }
複製程式碼

總結:
被觀察者(Observable):通過訂閱行為(subscribe())把事件按順序傳送到 觀察者(Observer)。 觀察者(Observer):按順序接收到事件&做出響應反饋。

5.操作符

5.1建立操作符

  • 作用 :被觀察者把事件傳送至觀察者。

  • 應用 :

Android Rxjava:圖解不一樣的詮釋

5.2變換操作符

  • 作用 :被觀察者把序列事件加工為其他序列事件(變換)。

  • 原理 :結合叫外賣的例子(更改菜式)。

Android Rxjava:圖解不一樣的詮釋
  • 應用 :
Android Rxjava:圖解不一樣的詮釋

5.3合拼操作符

  • 作用 :將多個被觀察組合 & 將它們需要傳送的事件合拼

  • 應用 :

Android Rxjava:圖解不一樣的詮釋

5.4過濾操作符

  • 作用 :過濾/篩選 被觀察者傳送的事件。

  • 應用 :

Android Rxjava:圖解不一樣的詮釋

5.5條件操作符

  • 作用 :通過指定條件,判斷是否接收被觀察者傳送的事件。

  • 應用 :

Android Rxjava:圖解不一樣的詮釋

5.6其他功能操作符

  • 作用 :被觀察者傳送事件時,進行功能性擴充

  • 應用 :

Android Rxjava:圖解不一樣的詮釋

6.框架設計思想

Android Rxjava:圖解不一樣的詮釋

7.總結

  • Rxjava 如此好用、簡單、優雅的鏈式任務框架庫,你還等什麼?

  • 到此,基本完成了rxjava相關介紹與使用,希望大家喜歡我的文章。

  • 希望該文章能幫助準備面試、準備使用Rxjava的兄die們。

寫技術文章初心

  • 技術知識積累

  • 技術知識鞏固

  • 技術知識分享

  • 技術知識交流


相關文章