設計模式——觀察者模式

爲何使用觀察者模式?spa

當一個對象改變時,會影響其餘幾個對象的改變,此時應該使用觀察者模式。線程

也即一個事件發生時,會產生一些後續事件。對象

 

爲何不直接在對象改變的代碼中直接添加改變其餘對象的代碼?接口

①由於一旦須要增刪改對其餘對象的操做,就須要直接修改原始對象操做的代碼。不利於程序的維護。事件

②在原始事件處理代碼中加入對後續事件的處理代碼,會拖慢原始事件的處理速度。微博

 

什麼是觀察者模式?用戶體驗

定義:定義了對象之間的一對多依賴,這樣一來,當一個對象改變狀態時,它的全部依賴者都會受到通知並自動更新。引用

 

簡單來講,觀察者模式有兩個對象,分別是被觀察者觀察者們程序

被觀察者須要將它的觀察者們的引用存儲在一個集合中,在它發生改變時,及時的提醒集合中的觀察者們作出相應的改變。集合

觀察者們須要實現一個與被觀察相對應的統一接口,以便被觀察者可以方便的查找到實現了此接口的觀察者們,同時觀察者們的內部也須要作出響應被觀察者的響應操做。

 

好比:

原始事件(被觀察者)爲——微博點贊;

後續事件(觀察者們)爲——給被點贊人發送提示,增長兩位用戶之間的親密度,判斷該微博是否晉升爲熱門微博等等;

」微博點贊「事件處理完成以後,觀察者們也收到要作出相應操做的通知,並作出相應反應。

好處之一——加強用戶體驗:此處的」微博點贊「和用戶體驗最直接,用戶一點完贊,必須很快可以看到相應的界面變化,可是其餘後續事件相對來講,並非那麼緊急,咱們能夠再單獨開一條線程來完成後續事件。

相關文章
相關標籤/搜索