溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

web觀察者模式的實現(xiàn)效果有哪些

發(fā)布時間:2022-01-13 17:03:12 來源:億速云 閱讀:104 作者:iii 欄目:大數(shù)據(jù)

這篇“web觀察者模式的實現(xiàn)效果有哪些”文章的知識點大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“web觀察者模式的實現(xiàn)效果有哪些”文章吧。

效果

現(xiàn)面向不特定類型對象的通知 

一般來講通知也是一種調(diào)用,也就是說,當目標通知觀察者的時候,通常的做法需要目標類了解觀察者類的信息。觀察者模式定義了觀察者抽象接口,只要具體的觀察者實現(xiàn)了觀察者接口就可以加入到觀察者隊列中并接收目標的通知。也就是說作為通知者的目標類不需要了解具象觀察者類的細節(jié),從而實現(xiàn)了解耦。

實現(xiàn)面向不特定多數(shù)對象的通知

觀察者對象都被登錄到目標類的觀察者列表中,目標類發(fā)出通知方法只是簡單的依次調(diào)用列表中觀察者對象的通知接口。無論這個列表中的觀察者對象是多還是少,通知的方式都完全相同。觀察者模式就是通過這種方式實現(xiàn)了面向不特定多數(shù)觀察者的通知。

實現(xiàn)

拉模型還是推模型

所謂拉模型就是目標對象僅通知觀察者有變化這件事,而詳細內(nèi)容由觀察者自己從目標對象處取得;而推模型則是將變化的內(nèi)容,盡量詳細地隨通知一起發(fā)送。拉模型擴展靈活,但效率偏低;而推模型效率雖高,但靈活性不足。兩種方法各有利弊,需要根據(jù)實際情況進行取舍。作為一個折中的方案,在通知的時候同時帶上變化的對象和變化的類型,很多時候都會是一個足夠好的選擇。

避免無效引用

觀察者模式中的觀察者接收通知的前提條件就是在目標對象中進行登錄。當觀察者不再需要接收目標對象的通知時就需要及時地取消登錄。這一點一般不會發(fā)生嚴重的問題。初學者經(jīng)常容易發(fā)生的問題是,當觀察者對象被銷毀時有可能會遺漏取消登錄這件事,其結(jié)果就是通知時訪問無效對象。另一種情況是,當觀察者保持著目標對象的參照時,如果目標對象在觀察者之前被銷毀,也同樣可能出現(xiàn)訪問無效對象的情況。但是無論哪種問題,只要認真設(shè)計、保持良好的退出機制應(yīng)該都不難解決。

以上就是關(guān)于“web觀察者模式的實現(xiàn)效果有哪些”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

web
AI