觀察者模式(狀態改變 通知 更新行為)

2021-06-16 04:00:25 字數 388 閱讀 8663

所謂觀察者模式,便是定義了一種一對多的關係,由多個物件觀察乙個主題物件,當主題物件的狀態發生了變化,這個主題物件會通知所有的觀察者。這些觀察者會根據通知的情況自動更新自己的狀態。

1.主題純虛基類。

m_list:用於儲存觀察者物件的鍊錶

attach介面,用於增添觀察者,物件

dettach介面,刪除觀察者物件

notify介面,遍歷通知所有觀察者物件

2.觀察者純虛基類

upadate介面,用於更新自己的行為。

在參看一些書籍的時候,提到了觀察者模式中經常涉及到推拉模式,推拉模式的概念理解了,不過應用還有些模糊,還希望有朋友給予解答。

下面是乙個班長作為主題類物件,班上籃球隊隊員和啦啦隊隊員作為觀察者物件的乙個模擬場景。

觀察者模式 行為

當物件間存在一對多關係時,則使用觀察者模式 observer pattern 比如,當乙個物件被修改時,則會自動通知依賴它的物件。觀察者模式屬於行為型模式。意圖 定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新。主要解決 乙個物件狀態改變給其他物...

行為模式(觀察者模式)

觀察者模式,也稱發布 訂閱模式,定義了乙個被觀察者和多個觀察者的 一對多的物件關係。在被觀察者狀態發生變化的時候,它的所有觀察者都會收到通知,並自動更新。觀察者模式通常用在實時事件處理系統 元件間解耦 資料庫驅動的訊息佇列系統,同時也是mvc設計模式中的重要組成部分。以下我們以訂單建立為例。當訂單建...

行為模式 觀察者 模式

觀察者模式應用比較廣泛,又被稱為 發布 訂閱 模式。它用來定義物件間一種一對多的依賴關係,當乙個物件的狀態發生變化時,所有依賴它的物件都得到通知並被自動更新。觀察者模式的角色有 抽象主題 具體主題 發布者 抽象觀察者和具體觀察者 訂閱者 from abc import abcmeta,abstrac...