中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

java觀察者模式是什么

發布時間:2021-09-01 09:29:52 來源:億速云 閱讀:122 作者:chen 欄目:大數據

本篇內容介紹了“java觀察者模式是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

觀察者模式

① 觀察者模式的概念

觀察者模式(Observer),又叫發布-訂閱模式(Publish/Subscribe),定義對象間一種一對多的依賴關系,使得每當一個對象改變狀態,則所有依賴于它的對象都會得到通知并自動更新。UML結構圖如下:

java觀察者模式是什么

舉個例子:就比如是 天氣觀測站和氣象報告板的關系。但報告板想獲取觀測站的數據,可以注冊加入到觀測站的觀察者列表中,這就可以使觀測站有數據更新時,自動傳給氣象報告板。

java觀察者模式是什么

WeatherData 相當于氣象觀測站 和 觀察者的 一個中介。WeatherData 獲取來自氣象觀測站的數據后,向觀察者發送數據。

② 觀察者模式的結構

觀察者模式的主要角色如下:

  1. 抽象主題(Subject)角色:也叫抽象目標類,它提供了一個用于保存觀察者對象的聚集類和增加、刪除觀察者對象的方法,以及通知所有觀察者的抽象方法。

  2. 具體主題(Concrete    Subject)角色:也叫具體目標類,它實現抽象目標中的通知方法,當具體主題的內部狀態發生改變時,通知所有注冊過的觀察者對象。

  3. 抽象觀察者(Observer)角色:它是一個抽象類或接口,它包含了一個更新自己的抽象方法,當接到具體主題的更改通知時被調用。

  4. 具體觀察者(Concrete Observer)角色:實現抽象觀察者中定義的抽象方法,以便在得到目標的更改通知時更新自身的狀態。

③ 觀察者模式的優缺點
  • 優點:

    • 降低了目標與觀察者之間的耦合關系,兩者之間是抽象耦合關系。

    • 目標與觀察者之間建立了一套觸發機制。

  • 缺點

    • 如果一個被觀察者對象有很多的直接和間接的觀察者的話,將所有的觀察者都通知到會花費很多時間 。

    • 目標與觀察者之間的依賴關系并沒有完全解除,而且有可能出現循環引用 。

“java觀察者模式是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

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

AI

葫芦岛市| 阳山县| 和平区| 玛曲县| 五寨县| 油尖旺区| 东丰县| 玉屏| 平泉县| 察哈| 兖州市| 蓝山县| 阿巴嘎旗| 德钦县| 双流县| 舟山市| 丽江市| 徐汇区| 凯里市| 宁城县| 蓬安县| 金昌市| 福安市| 汉川市| 随州市| 南丹县| 凤冈县| 周至县| 皮山县| 永宁县| 鲁甸县| 东方市| 京山县| 镇赉县| 马鞍山市| 连州市| 吉林市| 九台市| 榆林市| 永州市| 佳木斯市|