上一篇介绍了Java原生提供的api,这一篇开始介绍其他Reactive Programming的工具。
如果你是一名Android的开发者,你应该早早就听过RxJava,是ReactiveXJava的简称,一个适用於JVM的Reactive Extensions实作,扩充了观察者模式(observer pattern)来支援序列化资料或事件的操作。ReactiveX在各式语言都有推出实作,除了RxJava
与好朋友RxAndroid
之外,RxJs
、RxSwift
,各大语言几乎都有支援,对於Reactive Programming的推广功不可没。
这篇主要介绍的Reactor是pivotal推出,一样也是Reactive Streams Specification
实作,他与RxJava有许多相似的地方,如果你是一名後端的开发者,熟悉各种spring framework,这样选择Reactor来进入Reactive世界是一个很好的选择,如果舞台在Android,那你最好的选择是RxJava。若选择了Reactor,首先需要介绍Mono
与Flux
,这是在Reactor中的两种概念,之前介绍过在Reactive stream中有Publisher
& Subscriber
,而其中Mono
&Flux
就是Publisher
的实作。
一个非同步的序列代表0-N个元素。下面这是官网关於FLUX的图,附上简单的说明。
Flux
从左到右的时间线。Flux
发出的元素。Flux
做的一些转换。Flux
代表转换的结果。从最熟悉的List,到不需要在意细节Functional的Stream,再到Reactive 非阻断的Flux
,概念上相似,就是代表多个元素,只是额外多了一些特性。
Mono是一个专门发射(emit)一个元素或0个的publisher
。
Mono
的时间线。Mono
发射出的一个Optional元素Mono
做的一些转换。Mono
代表转换的结果。从最早期回传物件或是null再到使用Optional来避免NPE最後到现在的Mono,都是类似的概念。
今天介绍了两个在Reactor中最基础的publisher
,下一篇就来看看如何使用。
<<: EP 13: Add/Edit the MockData in TopStore App
>>: 第21天 - 来试着做一个简易购物系统(5),统计购物车价格
如果你真的够渴望做点什麽,任何事情你都可以持续做三十天。 If you really want so...
常常有人说创业需要勇气,但绝非这麽简单,创业不只需要勇气还需要运气、人脉、执着 人脉 相信不用说很多...
今天我们会把Route 53串接到昨天建置的ELB上。但开始之前,我们先问自己一个问题,Route ...
本篇要介绍的是读者在大四上学期所修的一门课,也因为这门课的关系我才开始接触网路安全以及 AIS3,如...
...> 如果有错误,欢迎留言指教~ Q_Q 没写完啦 useMemo 回传一个 memoi...