响应式编程:理解响应式编程

引言


响应式编程并不是一个新概念。早在90年代末,微软的一名计算机科学家就提出了响应式编程。用来设计和开发微软的某些库。

定义


响应式编程(Reactive Programming,RP)的定义有很多个版本,如wikistackoverflow还有ReactiveX。但是每个版本的中心思想都是:响应式编程(RP)是一种基于异步数据流概念的编程范式。而RP的精髓也在于对数据流(Dataflow, Event)的高效处理。
而Rx,及Reactive Extensions,是对微软的.NET的一个响应式扩展。国外的一些大牛,对Rx也有一些自己的理解,如:The introduction to Reactive Programming you’ve been missing ,及其译文版

RxJava


Rx,及Reactive Extensions。Rx是一种编程模型。Rx借助可观察的序列来提供一种简单的方式来创建异步的,基于事件驱动的程序。
2013年,Netflix第一次向世界展示了RxJava。 RxJava的主要特点有:

  • 易于并发从而更好的利用服务器的能力
  • 易于有条件的异步执行
  • 一种避免回调地狱的更好方式
  • 一种响应式方法

RxJava Observable类源自于Gang of Four的观察者模式。但有高于观察者模式:

  • 生产者在没有数据产生时发出通知:onComplete()
  • 生产者发生错误时发出通知:onError()
  • RxJava的Observable能够组合而不是嵌套,从而避免回调地狱

Rx编程思想


在传统的命令式编程中,如表达式a=b+c。即把b的值和c的值相加之后,赋值给a之后,不管b和c如果变化都不会影响a;但是,在响应式的世界里,a的值会随着b的值或c的值变化而变化。
亦即,响应式可以将相关模型的变化直接反应到视图上。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值