【設計模式學習筆記】觀察者模式(上)
阿新 • • 發佈:2022-05-27
觀察者模式
三種設計模式主要解決的問題:
1, 建立型:解決“物件的建立”
2, 結構型:解決“類或物件的組合或組裝”
3, 行為型:解決“類或物件之間的互動”
- 定義
在物件間定義一個一對多的依賴,當一個物件狀態發生改變,所有依賴的物件都會自動收到通知。由於該模式比較抽象,所以不同的應用場景和需求,會有不同的實現方式。
- 實現
e.g.
1, 定義一個被觀察者的介面,有三個方法:
(1)registerA()
(2)removeA()
(3)notifyAll()
2, 定義一個觀察者的介面,有一個方法:
(1)nofity()
3, 分別基於上述兩個介面,建立一個被觀察者的類,和多個觀察者的類。
4, 將多個觀察者的物件放到被觀察者的類裡面,然後呼叫被觀察者的notifyAll(),就可以通知所有的觀察者了。
- 不同的實現方式
(1)同步阻塞的實現方式
(2)非同步非阻塞的實現方式
(3)程序內的實現方式
(4)跨程序的實現方式