《从零开始学Swift》学习笔记(Day 66)——Cocoa Touch设计模式及应用之通知机制...
原創文章,歡迎轉載。轉載請注明:關東升的博客?
通知(Notification)機制是基于觀察者(Observer)模式也叫發布/訂閱(Publish/Subscribe)模式,是 MVC(模型-視圖-控制器)模式的重要組成部分。?
問題提出
天氣一直是英國人喜歡討論的話題,而最近幾年天氣的變化也成為中國人非常關注的話題。我會根據天氣預報決定是坐地鐵還是開車上班,我的女兒也會根據天氣預報決定明天穿哪件衣服。于是我在移動公司為我的手機定制了天氣預報短信通知服務,它的工作模型如圖所示。
?
?
?
?
每天氣象局將天氣預報信息投送給移動運營商,移動運營商的短信中心負責把天氣預報發送給定制過這項服務的手機。
在軟件系統中,一個對象狀態改變也會連帶影響其他很多對象的狀態發生改變。能夠實現這一需求的設計方案有很多,但能夠做到復用性強且對象之間匿名通信的,觀察者模式是其中最為適合的一個。
?
解決方案
通知機制可以實現“一對多”的對象之間的通信。如圖所示,在通知機制中對某個通知感興趣的所有對象都可以成為接收者。首先,這些對象需要向通知中心(NSNotificationCenter)發出addObserver消息進行注冊通知,在投送對象通過postNotificationName消息投送通知給通知中心,通知中心就會把通知廣播給注冊過的接收者。所有的接收者都不知道通知是誰投送的,更不關心它的細節。投送對象與接收者是一對多的關系。接收者如果對通知不再關注,會給通知中心發出removeObserver消息注銷通知,以后不再接收通知。
??
歡迎關注關東升新浪微博@tony_關東升。
關注智捷課堂微信公共平臺,了解最新技術文章、圖書、教程信息
?
更多精品iOS、Cocos、移動設計課程請關注智捷課堂官方網站:http://www.zhijieketang.com
智捷課堂論壇網站:http://51work6.com/forum.php
?
總結
以上是生活随笔為你收集整理的《从零开始学Swift》学习笔记(Day 66)——Cocoa Touch设计模式及应用之通知机制...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【翻译】AdaIN:Arbitrary
- 下一篇: asp.net ajax控件工具集 Au