那麼什麼是響應式編程,來看個簡單的例子:
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
的狀態了,在響應式編程中,我們可以創建很多被觀察者對象,當這些對象的狀態發生改變時,我們能夠鏈式的去更新和處理各個狀態的變化和數據。