1 / 6
文档名称:

【Scala】响应式编程思想.doc

格式:doc   大小:15KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

【Scala】响应式编程思想.doc

上传人:惜春文档 2022/2/6 文件大小:15 KB

下载得到文件列表

【Scala】响应式编程思想.doc

相关文档

文档介绍

文档介绍:【Scala】响应式编程思想
何为响应式编程
响应式编程是一种面向数据流和变化传播的编程范式,数据更新是相关联的。 这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。【Scala】响应式编程思想
何为响应式编程
响应式编程是一种面向数据流和变化传播的编程范式,数据更新是相关联的。 这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。
以响应式编程方式进行思考,意味着要放弃命令式且带状态的编程****惯,并且强迫你的大脑以一种不同的方式去工作。
响应式编程提高了代码的抽象层级,所以你可以只关注定义了业务逻辑的那些相互依赖的事件,而非纠缠于大量的实现细节。它可以简化项目,特别是处理嵌套回调的异步事件、复杂的列表过滤和变换,或时间相关问题。
交互式编程与响应式编程
平时我们使用最多的便是“交互式(Interactive)”的编程方式,采用的是组件之间的相互调用来表现逻辑。例如,对象A向对象B请求数据并等待返回,待对象B完成并返还数据之后A才继续进行后面的操作。
响应式编程是一种基于“改变”的编程方式。例如在交互式编程中,A = B + C这样的表达式意味着将B与C之和赋给A,而此后B与C的改变都与A无关。而在响应式编程中,A会去“响应”B或C的变化,即一旦B或C改变之后,A的值也会随之变化。响应式编程的一个典型应用便是GoF23中的观察者模式。
响应式系统模型
Actor模型
Actor模型=数据+行为+消息。Actor模型内部的状态由自己的行为维护,外部线程不能直接调用对象的行为,必须通过消息才能激发行为,这样就保证Actor内部数据只有被自己修改。
Actor是一个个独立的实体,他们之间是毫无关联的。但是,他们可以通过消息来通信。一个Actor收到其他Actor的信息后,它可以根据需要作出各种相应。Actor的常见应用模式是处理大规模并发输入流:将具体工作分类给异步的工作节点,之后返回工作节点计算的结果。
Actor模型实际上并不是纯正的函数式编程模型。Receive方法返回Unit类型,这意味着在该方法中,所有事情都是通过副作用完成的。再者,只要需要,Actor模型便会允许使用可变状态,但这里要遵守一个规则,将状态封装在某个actor中,并确保所有状态的响应操作是线程安全的。
综上,Actor模型是处理大规模、高度可用、事件驱动应用程序的更为通用的方法。
函数响应式编程(functional reactive programming,FRP)
在函数响应式编程模型中,基于时间的状态需要通过某一系统传播到需要使用这些状态的代码中。当FRP模型中的某一状态发生变化时,你并不需要手动地对依赖这些变化的变量进行更新,与之相反,FRP会使用声明的方式描述数据元素之间的依赖关系,而FRP运行时则会负责状态的传播。因此,用户使用函数式声明语句和组合语法编写代码。
FRP基本上就是面向异步事件流的编程了,这个异步事件流(Stream)是一个按时间排序的事件序列。Stream是不可变的,任何操作都返回新的Stream,且它是一个Monad。
响应式扩展(reactive extensions,Rx)