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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/marine8888/article/details/50723041

引言


响应式编程并不是一个新概念。早在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的值变化而变化。
亦即,响应式可以将相关模型的变化直接反应到视图上。

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试