天天看點

【設計模式】—— 觀察者模式Observer

  前言:【模式總覽】——————————by xingoo

  觀察者模式,也叫釋出/訂閱模式,從名字來說就能察覺到它的過程應該是,釋出——其他人接受。

  這個模式定義了對象之間的一種依賴關系,當一個對象發生變化時,其他的對象收到更新,也發生變化。

  模拟我們訂閱郵件這個場景,不管我們的郵箱是在登陸還是關閉,郵件都會發送到郵箱裡面。隻要把自己的郵箱訂閱到這個郵件就可以了!這個模式也是這樣一個過程。

  這個模式代碼相對來說比較容易了解,而且應用很廣泛。

  1 當一個模型有幾個展現方面,通過修改一個展現,順便更新其他的。就好比一個網站的有web端,也有移動端,當web端的資料發生變化時,移動端的資料展現也要更新。

  2 對一個對象發生改變,而不知道将有多少對象會發生改變時,利用這種模式可以有效的管理對象。

【設計模式】—— 觀察者模式Observer

  Subject 抽象的主題角色

  ConcreteSubject 具體的主題角色,内部有一個容易,用于存放訂閱者

  Observer 抽象的訂閱者角色

  ConcreteObserver 具體的訂閱者

  全部代碼

【設計模式】—— 觀察者模式Observer
【設計模式】—— 觀察者模式Observer

View Code

  運作結果

作者:xingoo