Android 觀察者設計模式

2021-08-23 14:19:47 字數 1195 閱讀 5744

觀察者模式(observer)是軟體設計模式的一種,定義了物件之間一種一對多的關係,也

就是當乙個物件資料發生變化時,會通知與之依賴的其他物件,以相應其資料變化,這種當

目標物件資料發生變化時,與之對應的觀察者物件資料隨之發生變化的,具有一對多通知關

系的設計模式叫做觀察者設計模式.

觀察者設計模式中主要區分兩個概念:

觀察者:指觀察者物件,也就是訊息的訂閱者;

被觀察者:指要觀察的目標物件,也就是訊息的發布者;

當被被觀察者資料發生變化時,主要通過兩種方式通知觀察者,具體如下:

:訊息以類似廣播的形式通知觀察者,觀察者只能被動、無條件接受;(常規 的觀察者模式,直接把改變的資料傳遞給觀察者)

:接收到被觀察者的通知,可以自主決定獲取訊息。(把被觀察者物件傳給觀 察者,觀察者自己呼叫被觀察者的get方法獲取自己想要的資料)

缺點:如果被觀察者有多個間接的觀察者

訊息的傳遞將消耗更多時間,如果觀察者被觀察者之間迴圈依賴,最終會導致系統崩潰.

觀察者設計模式在開發中使用比較廣泛,主要有以下幾個場景,具體如下:

1.android 中的廣播機制以及 listview 中通知資料發生變化時也是觀察者設計模式

2.訂閱類相關的系統,如當訂閱的主題有更新,訂閱者就會同步訂閱的文章

Android設計模式 觀察者模式

觀察者模式又叫訂閱 發布模式,它的主要作用就是解耦,將觀察者和被觀察者解耦,使它們的依賴性變的更小。在這個模式中主要就是被觀察者通知所有觀察者發生改變,及時的更新。listview的notifydatasetchanged 改變介面 broadcastrecevier也是運用此設計模式。角色介紹 s...

Android設計模式 觀察者模式

觀察者模式是乙個使用頻率非常高的模式,他最常用的地方是gui系統和訂閱 發布系統。該模式的最重要的作用就是解耦,使觀察者和被觀察者之間依賴盡可能小,甚至好無依賴。定義物件間一種一對多的關係,使得每當乙個物件改版狀態,所有依賴它的物件都會得到通知並更新。如圖 1.事件多級觸發場景 2.關聯行為場景 3...

python 設計模式 觀察者 觀察者設計模式

在觀察者設計模式這種模式中,物件被表示為等待事件觸發的觀察者。一旦發生指定的事件,觀察者就會關注該主體。當事件發生時,主體告訴觀察者它已經發生。以下uml圖表示觀察者模式 如何實現觀察者模式?現在讓我們來看看如何實現觀察者模式。參考以下實現 import threading import time ...