介紹下觀察者模式和訂閱-發布模式的區別,各自適用於什么場景


觀察者模式中主體和觀察者是互相感知的,發布-訂閱模式是借助第三方來實現調度的,發布者和訂閱者之間互不感知

聯系

發布-訂閱模式是觀察者模式的一種變體。發布-訂閱只是把一部分功能抽象成一個獨立的ChangeManager。

意圖

都是某個對象(subject, publisher)改變,使依賴於它的多個對象(observers, subscribers)得到通知。

區別與適用場景

總的來說,發布-訂閱模式適合更復雜的場景。

在「一對多」的場景下,發布者的某次更新只想通知它的部分訂閱者?

在「多對一」或者「多對多」場景下。一個訂閱者依賴於多個發布者,某個發布者更新后是否需要通知訂閱者?還是等所有發布者都更新完畢再通知訂閱者?

這些邏輯都可以放到ChangeManager里。

參考文章:https://juejin.im/post/5a14e9edf265da4312808d86

https://juejin.im/post/5cd81a20e51d453b4558d858

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM