RxJava 教程第一部分:为何使用RxJava
原文出處:http://blog.chengyunfeng.com/?p=947
為何使用RxJava
用戶希望查看實時的數據,他們現在就要看最新的微博;他們的訂單立刻就被確認;價格需要現在定下;在線游戲需要及時響應。作為碼農,你需要發送并忘記的( fire-and-forget )消息。你不希望發送一個消息然后阻塞等待結果返回。當結果返回的時候,你希望結果推送給你。當處理的結果是一個集合數據的時候,你更希望逐個的接收到每個結果;你不希望等待整個結果集合都完成后一起返回。世界已經進步到推送的情景了;用戶期待我們能跟上他們的步伐。碼農有工具來推送數據了,推送數據很簡單。碼農需要工具來響應推送的數據。
歡迎來到 RxJava 系列教程,RxJava 是由大名鼎鼎的 Netflix 公司在開發軟件過程中應用 Rx.NET 思想解決實際問題,并最總提煉出來的一套應用于 Java 的 Rx 框架。Rx 是一個優雅解決問題的框架,functional programmer 對該框架比較熟悉。Rx 有如下一些優點:
統一性(Unitive)
Rx 中的查詢是使用和 functional programming 通用的風格實現的,例如前面介紹的 Java 8 中的 Streams 和 Lambda表達式。在 Rx 里面,可以在事件上使用 functional 風格的轉換操作。擴展性(Extensible)
RxJava 可以自定義操作函數。雖然 Java 的語法現在導致自定義操作函數有點麻煩。RxJava 提供了所有的可擴展性來支持其他運行 Jvm 上語音的支持,比如 kotlin、scale 等。描述性(Declarative)
Functional transformations are read in a declarative way.組合性(Composable)
Rx 的操作函數可以組合起來形成更加復雜的操作轉換性(Transformative)
Rx 操作函數可以把一個類型的數據轉換為另外一種需要的類型,根據需要還可以過濾、映射、擴展數據流。
何時應該使用 Rx?
Rx 適合組合和消耗一系列的事件(數據)。下面是一些使用 Rx 的場景:
1、應當使用 Rx
- UI 事件響應,例如 鼠標移動、按鈕點擊事件
- Domain 事件,例如 屬性改變、集合更新、訂單提交、注冊成功 等
- 基礎架構事件,例如 文件監視、系統事件 等
- 集成事件,例如從一個消息隊列來的一個廣播;來自于 WebSockets - - API 的推送事件 等
- CEP 集成事件,例如 StreamInsight 或者 StreamBase.
2、可以使用 Rx
- Future 的結果或者類似的模式
這些模式已經工作的很好的,使用 Rx 在這些情況下對開發過程并不會有太多的提升。
3、不要使用 Rx
把 iterables 變成 observables, 只是為了在 Rx 庫中使用它們。
Read more: http://blog.chengyunfeng.com/?p=947#ixzz4KaNsDUkI
總結
以上是生活随笔為你收集整理的RxJava 教程第一部分:为何使用RxJava的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Loader机制全面详解
- 下一篇: RxJava 教程第一部分:入门之 关键