理解設計模式之觀察者模式

2021-08-11 14:28:29 字數 812 閱讀 8186

觀察者模式定義了物件之間一對多依賴,當乙個物件改變狀態時,他的所有依賴者都會收到通知並自動更新。

為互動物件之間的松耦合設計而努力。盡力做到互動物件之間不直接產生聯絡和作用。

觀察者模式中主題(subject)與觀察者(observer)之間的關係是當主題中觀察者關心的部分發生變化時,要及時通知觀察者,以便觀察者能夠及時作出反應。觀察者會是不同的物件,因此我們在開發時不能因為觀察者不同造成我們**的修改。同時設計時要充分考慮到設計原則。

多個不同的類都關心某乙個類的相關屬性,當這乙個類的屬性發生變化的時候,需要主動的告知這些關注它的屬性的多個不同類。

現在頁面上具有多個不同型別的統計圖,關於**註冊使用者男女比例的顯示。

public

inte***ce

iwebsite

public

class

website

implements

iwebsite

}}public

inte***ce

igraph

public

class

graph_01

implements

igraph

}......

**說明:主題監管多個實現了同乙個介面的不同類,從而實現了主題與觀察者沒有直接的關聯,實現了松耦合。

理解設計模式(觀察者)

觀察者模式,保證主題和若干觀察者之間的一致性。有時又被稱為發布 訂閱subscribe 模式 模型 檢視view 模式 源 收聽者listener 模式或從屬者模式 此種模式通常被用來實現事件處理系統 乙個系統,由乙個物件和若干協作物件組成,同時要避免這些物件之間相互耦合 一般由介面或抽象類實現 註...

設計模式之觀察者模式

首先說了乙個自己的小例子吧,前兩天我的乙個朋友來找我玩,因為路途比較遠,我需要知道他的位置,然後安排好時間去接他,那麼在這個例子中,我就是乙個觀察者,需要時時刻刻觀察他的位置,我的朋友就是乙個被觀察者。那麼需要知道我朋友的位置,就有兩種方式,第一,我自己打 問,第二,我的朋友告訴我,下面我們來看看這...

設計模式之觀察者模式

一 作用 讓多個觀察者監視某一物件的變化,如果物件變化,則通知所有觀察者。二 例子 抽象主題類 public abstract class subject 移除觀察者 public void detach observer observer 向觀察者 們 發出通知 public void notif...