最簡單的通知方式 - 觀察者模式
只需要語言支援以下功能:字典,陣列,單例
結構
NotificationCenter 這裡簡稱nc
nc的單例簡稱為nc.one()
資訊傳送
nc.one().post(事件名,傳遞引數)
資訊接收
nc.one().add(事件名,事件函式)
如果傳送事件,則需要先新增事件偵聽,因為觀察者模式耦合性低,所以即便不新增觀察,事件也是可以傳送,只是沒有物件接收它而已。觀察者最重要的一環是必須在物件銷燬前將物件的所有觀察全部移除,否則會導致錯誤,甚至崩潰。
nc內部需要一個核心的字典類 --- dic[事件名,觀察者陣列]
新增觀察時,新增到觀察者陣列中。
傳送事件時,傳送遍歷觀察者陣列。
移除觀察時,移除dic中所有事件中所有陣列查詢對應的觀察者。
這裡需要注意的幾點(效率不高,但效率讓給了傳遞事件):
- 新增觀察時需要排除重複新增
- 移除觀察時需要遍歷所有位置
相關文章
- 觀察者模式-將訊息通知給觀察者模式
- 簡單講解觀察者設計模式設計模式
- iOS設計模式2 - 觀察者模式_通知機制iOS設計模式
- 簡說設計模式——觀察者模式設計模式
- 極簡設計模式-觀察者模式設計模式
- 觀察者模式模式
- 【程式碼簡述設計模式】----- 觀察者模式設計模式
- PHP觀察者模式PHP模式
- 觀察者模式(2)模式
- Unity——觀察者模式Unity模式
- 進擊的觀察者模式模式
- Spring中的觀察者模式Spring模式
- 設計模式 —— 觀察者模式設計模式
- 設計模式(觀察者模式)設計模式
- 設計模式----觀察者模式設計模式
- 【設計模式】觀察者模式設計模式
- 設計模式——觀察者模式設計模式
- 設計模式中的觀察者模式設計模式
- observer-觀察者模式Server模式
- 重構 - 觀察者模式模式
- 18_觀察者模式模式
- PHP-觀察者模式PHP模式
- 大話--觀察者模式模式
- PHP 之觀察者模式PHP模式
- redux與觀察者模式Redux模式
- 觀察者模式介紹模式
- JS中的觀察者模式DEMOJS模式
- PHP設計模式-觀察者模式PHP設計模式
- Java設計模式-觀察者模式Java設計模式
- 行為型模式:觀察者模式模式
- 設計模式解析:觀察者模式設計模式
- 行為型模式--觀察者模式模式
- 設計模式之觀察者模式設計模式
- 設計模式之-觀察者模式設計模式
- 設計模式 #6 (觀察者模式)設計模式
- JS設計模式(觀察者模式)JS設計模式
- 設計模式(十六)觀察者模式設計模式
- 設計模式之【觀察者模式】設計模式