觀察者模式詳解


官方定義:定義對象之間的一對多的依賴關系,當一個對象的狀態發生改變時,所有依賴於它的對象都得到通知並自動更新。

認識觀察者模式:

  1、目標與觀察者之間的關系:目標與觀察者之間是一對多的關系。

  2、單向依賴:只有目標知道什么時候通知觀察者。

  3、命名模式:又稱為發布-訂閱模式,目標接口定義后面跟subject,觀察者接口定義后面跟observer,觀察者接口的更新方法建議為update,方法的參數是根據需要定義的。

  4、觸發通知的時機:先改變后通知。

觀察者實現的兩種方式:

  1、推模型:目標對象主動向觀察者推送目標的詳細信息,推送的信息通常是目標對象的全部或部分數據。

  2、拉模型:目標對象在通知的時候只傳遞少量信息,如果觀察者需要更具體的信息,由觀察者主動到目標對象獲取,相當於是觀察者主動在目標對象中拉數據。

兩種模式的比較:

  1、推模型是假定目標對象知道觀察者所需要的數據,而拉模型是目標對象具體需要什么數據,直接把自生傳遞給觀察者,由觀察者來取值,推模型會使觀察者對象難以復用;

  2、拉模型下,update方法的參數是對象本身,基本可以適應各種情況的需要。

觀察者的優點:

  1、觀察者模式實現了觀察者和目標之間的抽象耦合。

  2、觀察者模式實現了動態聯動。

  3、觀察者模式支持廣播通信。

觀察者的缺點:

  1、可能會引起無畏的操作。

觀察者模式衍生:

  如果觀察者有個性化的設置,則需要在通知的時候區別對待。


免責聲明!

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



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