91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

新乡市| 澄迈县| 亳州市| 郸城县| 芜湖县| 赫章县| 怀化市| 永丰县| 大兴区| 阿坝县| 四平市| 富民县| 芦溪县| 洱源县| 吴桥县| 文昌市| 潼关县| 溧阳市| 西安市| 门头沟区| 颍上县| 江口县| 日喀则市| 任丘市| 洛阳市| 麻城市| 醴陵市| 临清市| 淮北市| 锡林郭勒盟| 平远县| 鹤壁市| 榆社县| 涞水县| 长顺县| 古丈县| 化德县| 西吉县| 雷山县| 河曲县| 新密市|