在面向?qū)ο蟮募軜?gòu)中,開發(fā)者致力于創(chuàng)建一組解耦的實(shí)體。這樣的話,實(shí)體就可以在不用妨礙整個(gè)系統(tǒng)的情況下可以被測(cè)試、復(fù)用和維護(hù)。設(shè)計(jì)這種系統(tǒng)就帶來一個(gè)棘手的負(fù)面影響:維護(hù)相關(guān)對(duì)象之間的統(tǒng)一。
在Smalltalk MVC架構(gòu)中,創(chuàng)建模式的第一個(gè)例子就是用來解決這個(gè)問題的。用戶界面框架提供一種途徑使UI元素與包含數(shù)據(jù)的實(shí)體對(duì)象相分離,并且同時(shí),它提供一種靈活的方法來保持它們之間的同步。
在這本暢銷的四人組編寫的《設(shè)計(jì)模式——可復(fù)用面向?qū)ο筌浖幕A(chǔ)》一書中,觀察者模式是最有名的設(shè)計(jì)模式之一。它是一種行為模式并提供一種以一對(duì)多的依賴來綁定對(duì)象的方法:即當(dāng)一個(gè)對(duì)象發(fā)生變化時(shí),依賴它的所有對(duì)象都會(huì)被通知并且會(huì)自動(dòng)更新。
在本章中,我們將會(huì)對(duì)觀察者模式有一個(gè)概述,它是如何實(shí)現(xiàn)的以及如何用RxJava來擴(kuò)展,Observable是什么,以及Observables如何與Iterables相關(guān)聯(lián)。