設計模式 Observer 觀察者模式

2022-09-04 07:00:17 字數 808 閱讀 2365

形象例子:

想知道咱們公司最新mm情報嗎?加入公司的mm情報郵件組就行了,tom負責蒐集情報,他發現的新情報不用乙個乙個通知我們,直接發布給郵件組,我們作為訂閱者(觀察者)就可以及時收到情報啦。

觀察者模式:

觀察者模式定義了一種一隊多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態上發生變化時,會通知所有觀察者物件,使他們能夠自動更新自己。

作用:定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新.

uml結構圖:

解析:observer

模式定義的是一種一對多的關係,這裡的一就是圖中的subject類,而多則是obesrver類,當subject類的狀態發生變化的時候通知與之對應

的obesrver類們也去相應的更新狀態,同時支援動態的新增和刪除observer物件的功能.obesrver模式的實現要點是,第一一般

subject類都是採用鍊錶等容器來存放observer物件,第二抽取出observer物件的一些公共的屬性形成observer基類,而

subject中儲存的則是observer類物件的指標,這樣就使subject和具體的observer實現了解耦,也就是subject不需要去關

心到底是哪個observer對放進了自己的容器中.生活中有很多例子可以看做是observer模式的運用,比方說,乙個班有乙個班主任

(subject),他管理手下的一幫學生(observer),當班裡有一些事情發生需要通知學生的時候,班主任要做的不是逐個學生挨個的通知而是把學

生召集起來一起通知,實現了班主任和具體學生的關係解耦.

Observer 觀察者 設計模式

宣告 本博文篇幅短,適合review。一 概念 定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態發生變化時,會通知所有觀察者物件,使他們能夠自動更新自己。二 模式結構圖 三 例子 四 優缺點 1 優點 a 降低了觀察者與被觀察者之間的耦合。b subject在傳...

Observer觀察者設計模式

observer設計模式主要包括以下兩種物件 1 被觀察物件 subject,它往往包含其他物件感興趣的東西,上面例子中熱水器中就是subject 被監視物件 2 觀察物件 observer,它觀察著subject,當subject中的某件事發生後,會告知observer,obersver會採取相應...

觀察者(observer)設計模式

假設我們有個高檔的熱水器,我們給它通上電,當水溫超過95度的時候 1 揚聲器會開始發出語音,告訴你水的溫度 2 液晶屏也會改變水溫的顯示,來提示水已經快燒開了。現在假設熱水器由三部分組成 熱水器 警報器 顯示器,它們來自於不同廠商並進行了組裝。那麼,應該是熱水器僅僅負責燒水,它不能發出警報也不能顯示...