1. 程式人生 > 其它 >【設計模式學習筆記】觀察者模式(上)

【設計模式學習筆記】觀察者模式(上)

觀察者模式

三種設計模式主要解決的問題:
1, 建立型:解決“物件的建立”
2, 結構型:解決“類或物件的組合或組裝”
3, 行為型:解決“類或物件之間的互動”


  • 定義
    在物件間定義一個一對多的依賴,當一個物件狀態發生改變,所有依賴的物件都會自動收到通知。由於該模式比較抽象,所以不同的應用場景和需求,會有不同的實現方式。

  • 實現

e.g.
1, 定義一個被觀察者的介面,有三個方法:
(1)registerA()
(2)removeA()
(3)notifyAll()

2, 定義一個觀察者的介面,有一個方法:
(1)nofity()

3, 分別基於上述兩個介面,建立一個被觀察者的類,和多個觀察者的類。

4, 將多個觀察者的物件放到被觀察者的類裡面,然後呼叫被觀察者的notifyAll(),就可以通知所有的觀察者了。


  • 不同的實現方式
    (1)同步阻塞的實現方式
    (2)非同步非阻塞的實現方式
    (3)程序內的實現方式
    (4)跨程序的實現方式