自定義操做RxJava 學習筆記<二十三>

二十三,有點讓我想起《風雲》裏面的劍二十三式ios

RxJava提供了一套很是強大的操做集。若是計算全部重載次數,Rx上的運算符數量超過300。其中少數運算符必不可少,這意味着沒有它們就沒法實現Rx實現。許多隻是爲了方便和自我描述的名稱。例如,若是source.First(user  - > user.isOnline())不存在,咱們仍然能夠執行source.filter(user  - > user.isOnline()).First()。git

儘管有許多便利操做,但RxJava的操做集仍然很是基礎。Rx提供了能夠組合成任何東西的構建塊,但最終你須要爲重複的案例定義可重用的代碼。在標準Java中,這將使用自定義類和方法完成。在Rx中,您但願可以設計自定義運算符。例如,從您的財務應用程序中計算一系列數字的運行平均值可能很是常見。在Observable中不存在,但您能夠本身建立: github

這樣作,但它不可重複使用。在真實的金融應用程序中,您可能但願對許多不一樣的序列進行相同類型的處理。即便你不這樣作,將全部這些代碼隱藏在一個短語後面仍然是很好的:「運行平均值」。能夠理解的是,Java開發人員的第一直覺就是用它來建立一個函數:函數

你能夠輕鬆使用它:設計

輸出;blog

上面的例子看起來很好,由於它很簡單。讓咱們的定製操做作一些更復雜的事情。讓咱們用一個短語,把它變成一個長序列並計算出它的運行平均值。開發

再次,這是有效的,但它看起來不是100%Rx。想象一下,若是Rx中的全部內容都像咱們設計的方法(包括全部現有的運算符)那樣完成。it

咱們正在反向閱讀咱們的管道!哎呀!io

下節再續!ast

原文:https://github.com/Froussios/Intro-To-RxJava/blob/master/Part%203%20-%20Taming%20the%20sequence/7.%20Custom%20operators.md

有什麼討論的內容,能夠加我公衆號:

相關文章
相關標籤/搜索