Functional Reactive Programming(以下简称FRP)是一种响应变化的编程范式。
简单举例
var A : Int = 2
var B : Int = 3
var c = A + B //c = 5
A = 3
//如果使用FRP,C的值将会随着A的值改变而改变,所以叫做「响应式编程」
FRP提供了一种信号机制来实现这样的效果,通过信号来记录值的变化。信号可以被叠加、分割或合并。通过对信号的组合,就不需要去监听某个值或事件。在项目中也经常需要这种方式实现交互。
例如有这样一种功能,文本框+按钮,当有文字输入时,按钮点亮可交互;在iOS中通常用delegate模式,本质上是事件的分发和响应。这种做法因的缺点是不够直观,尤其在逻辑比较复杂的情况下。而FRP主要有两个好处:直观和灵活。直观的代码容易编写、阅读和维护,灵活的特性便于应对变态的需求。