欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > java >内容正文

java

RxJava 教程第一部分:为何使用RxJava

发布时间:2025/4/16 java 38 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。