觀察者模式

1. 定義: 發(fā)布/訂閱,每當一個對象的狀態(tài)發(fā)生變化,所有依賴它的對象都會得到通知并自動更新

2. 優(yōu)點:

(1)觀察者與被觀察者解耦

(2)建立一套觸發(fā)機制:

比如,我們?nèi)ゴ颢C,打死了一只母鹿,母鹿有三個幼崽,因失去了母鹿而餓死,尸體又被兩只禿鷹爭搶,因分配不均,禿鷹開始斗毆,然后羸弱的禿鷹死掉,生存下來的禿鷹,則因此擴大了地盤……

依賴關系:

母鹿<-幼崽<-禿鷹

Task之間改為觀察者模式(不合適,7級鏈條會導致混亂)

3. 缺點:

(1)多個觀察者,開發(fā)調(diào)試困難

(2)多個觀察者一般用異步

(3)多級觸發(fā)效率低

4. 使用場景:

(1)關聯(lián)行為場景:a變化導致b變化

(2)事件多級觸發(fā):建議不多于2級,即a影響b,b影響c

(3)跨系統(tǒng)消息交換?發(fā)布/訂閱式消息隊列

5. 問題:

(1)事件多級觸發(fā),建議消息最多轉(zhuǎn)發(fā)一次,即傳遞兩次

(2)多個觀察者,異步

6. java提供了observable,observer接口

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容