你用不慣 RxJava,只因缺了這把鑰匙(推薦)
前言
本文最初是為部門內(nèi)部培訓(xùn)而準備的,但經(jīng)過一番調(diào)研發(fā)現(xiàn),同事們用不慣 RxJava,并不是因為網(wǎng)上介紹 “怎么用” 的教程不夠多,恰恰是因為,一上來就急著發(fā)車的教程無數(shù)、卻從未有過哪篇教程 舍得用幾句話的功夫點破 RxJava 操作符究竟為何方神圣、我們?yōu)槭裁匆?、為什么要那樣用?/p>
Observable.just(1, 3, 5, 7, 9) .map(i -> i + 1) .filter(i -> i < 5) .subscribe(getObserve());
事實上,在相當(dāng)長的一段時間里,我也和大部分人一樣,只知道使用 RxJava 來完成異步回調(diào),至于那些操作符,則是能不用盡量不用,因為不知道葫蘆里賣的什么藥,看不懂、不會用。

因此,本文的初衷絕不是翻譯官方文檔、教大家怎么用,而是旨在幫助大家對 RxJava 操作符 完成感性上的認識。鑒于本次培訓(xùn)的效果還不錯、同事們聽了都說好,我便在 GitHub 開源了全套操作符示例代碼(不要慌,鏈接文末已給出)。如果你在閱讀本文后覺得恍然大悟,原來 RxJava 操作符是這么回事,那么我的愿望也就達到了。

編程語言包含多種編程范式
我對操作符本質(zhì)的頓悟,始于我對編程語言的理解。和你一樣,我是做安卓開發(fā),但有一天,我決定跳出 Java,從整個計算機科學(xué)的角度來學(xué)習(xí)和理解編程語言的本質(zhì),在這過程中,我接觸了“編程范式”這個概念,了解到原來每個編程語言大都包含多種編程范式。
常見的編程范式有:命令式編程、聲明式編程等。

以 Java 為例,咱們 Java 最主要的編程范式是命令式編程。命令式編程 即按順序執(zhí)行具體的命令,這些命令不僅交待了做什么,還詳細交待了每一步怎么做。
SQL 也是種編程語言,是一種典型的聲明式編程。聲明式編程的特點是,只交待做什么,但無須交待怎么做。
操作符的本質(zhì)是聲明式編程
下面回到我們最初的問題上來。你之所以用不慣 RxJava 操作符,是因為你習(xí)慣性地使用命令式編程思維 來理解實際上是聲明式編程的操作符。
學(xué)習(xí)操作符,就和你在大學(xué)里接受的 SQL 語句一樣理所當(dāng)然。
SQL 你是理解的,就是按一定的規(guī)則,向數(shù)據(jù)庫中的數(shù)據(jù)聲明你要做什么。

同理,RxJava 也是按一定的規(guī)則,向數(shù)據(jù)流聲明你要做什么。

轉(zhuǎn)換成代碼,便成為以下這樣。
Observable.just(1, 3, 5, 7, 9) .map(i -> i + 1) .filter(i -> i < 5) .subscribe(getObserve());
這樣說,你理解了嗎?

全套操作符示例代碼
以上所述是小編給大家介紹的RxJava操作符詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Android四大組件:Activity/Service/Broadcast/ContentProvider作用示例
Android是一種基于Linux,自由及開放源代碼的操作系統(tǒng),Android分為四個層,從高層到底層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運行庫層和Linux內(nèi)核層,Android有四大基本組件:Activity、Service服務(wù)、BroadcastReceiver廣播接收器、Content Provider內(nèi)容提供者2023-11-11
Android進階從字節(jié)碼插樁技術(shù)了解美團熱修復(fù)實例詳解
這篇文章主要為大家介紹了Android進階從字節(jié)碼插樁技術(shù)了解美團熱修復(fù)實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-01-01
android ViewPager實現(xiàn)滑動翻頁效果實例代碼
本篇文章主要介紹了android ViewPager實現(xiàn)滑動翻頁效果實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03
Android開發(fā)之a(chǎn)ctiviti節(jié)點跳轉(zhuǎn)
這篇文章主要介紹了Android開發(fā)之a(chǎn)ctiviti節(jié)點跳轉(zhuǎn)的相關(guān)資料,需要的朋友可以參考下2016-04-04

