那么什么是响应式编程,来看个简单的例子:
var i = 1,
j = 2,
k = i + j;
print("k = \(k)") // k= 3
i = 3
j = 4
print("k = \(k)") // k= 3
在这里把i,j,k
当成某个状态,k是j,i
两个状态的组合,正常的编程中,在计算了k的状态之后,再去改变j,i
的状态是不会影响到c
的状态的。所以在正常编程中我们要去记录很多状态并及时更新状态,比如网络请求的状态,下拉刷新的状态。各种各样的事件响应方式,无形中增加了编码的复杂度。而在响应式编程中,每一个状态的改变都会发出一个信号,更新与之关联的状态。
比如上面i,j
的状态改变之后能够及时更新k的状态,而不用重新通过j+i
计算c
的状态了,在响应式编程中,我们可以创建很多被观察者对象,当这些对象的状态发生改变时,我们能够链式的去更新和处理各个状态的变化和数据。