觀察者模式和發布/訂閱模式的區別


在處理自定義事件時,觀察者模式和發布/訂閱模式經常使用,起初不了解這兩個模式的實現時,在網上看一些資料,很多介紹都將兩種模式混淆在一起,認為他們是同一個模式、一樣的實現。后來看了一些設計模式的書籍,感覺兩種模式還是有本質的區別,具體如下:

  1. 觀察者模式至少需要維護兩個對象
    顧名思義:有觀察者對象,肯定也得有觀察者需要關注的目標對象,在觀察者模式實習的時候,觀察者對象需要定義一個統一的接口,在目標對象發生某些改變時,調用(觸發)觀察者的對應的方法,通知觀察者到底發生了那些變化。

    而發布訂閱模式,只需要注冊訂閱器上的一個事,而訂閱器發生某些事件,則會觸發事件通道里面的函數,觸發器並不會關心其他任何對象和任何接口

  2. 在實現自定義事件方面我覺得使用發布/訂閱模式更為合適,簡單、耦合性比較低。使用發布訂閱模式時,我們關注那個對象,只需要在這個注冊這個對象的對應的事件即可,降低了訂閱者和發布者直接的耦合

 


免責聲明!

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



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