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