您好,登錄后才能下訂單哦!
這篇“web觀察者模式的實現效果有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“web觀察者模式的實現效果有哪些”文章吧。
效果
實現面向不特定類型對象的通知
一般來講通知也是一種調用,也就是說,當目標通知觀察者的時候,通常的做法需要目標類了解觀察者類的信息。觀察者模式定義了觀察者抽象接口,只要具體的觀察者實現了觀察者接口就可以加入到觀察者隊列中并接收目標的通知。也就是說作為通知者的目標類不需要了解具象觀察者類的細節,從而實現了解耦。
實現面向不特定多數對象的通知
觀察者對象都被登錄到目標類的觀察者列表中,目標類發出通知方法只是簡單的依次調用列表中觀察者對象的通知接口。無論這個列表中的觀察者對象是多還是少,通知的方式都完全相同。觀察者模式就是通過這種方式實現了面向不特定多數觀察者的通知。
實現
拉模型還是推模型
所謂拉模型就是目標對象僅通知觀察者有變化這件事,而詳細內容由觀察者自己從目標對象處取得;而推模型則是將變化的內容,盡量詳細地隨通知一起發送。拉模型擴展靈活,但效率偏低;而推模型效率雖高,但靈活性不足。兩種方法各有利弊,需要根據實際情況進行取舍。作為一個折中的方案,在通知的時候同時帶上變化的對象和變化的類型,很多時候都會是一個足夠好的選擇。
避免無效引用
觀察者模式中的觀察者接收通知的前提條件就是在目標對象中進行登錄。當觀察者不再需要接收目標對象的通知時就需要及時地取消登錄。這一點一般不會發生嚴重的問題。初學者經常容易發生的問題是,當觀察者對象被銷毀時有可能會遺漏取消登錄這件事,其結果就是通知時訪問無效對象。另一種情況是,當觀察者保持著目標對象的參照時,如果目標對象在觀察者之前被銷毀,也同樣可能出現訪問無效對象的情況。但是無論哪種問題,只要認真設計、保持良好的退出機制應該都不難解決。
以上就是關于“web觀察者模式的實現效果有哪些”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。