C 事件和觀察者設計模式

2021-08-26 16:12:27 字數 744 閱讀 6628

observer設計模式簡介

現在假設熱水器由三部分組成:熱水器、警報器、顯示器,它們來自於不同廠商並進行了組裝。那麼,應該是熱水器僅僅負責燒水,它不能發出警報也不能顯示水溫;在水燒開時由警報器發出警報、顯示器顯示提示和水溫。

observer 設計模式中主要包括如下兩類物件

subject:監視物件,它往往包含著其他物件所感興趣的內容。在本範例中,熱水器就是乙個監視物件,它包含的其他物件所感興趣的內容,就是temprature欄位。當這個欄位的值快到 100 時,會不斷把資料發給監視它的物件。

observer:監視者,它監視 subject,當 subject中的某件事發生的時候,會告知observer,而observer則會採取相應的行動。在本範例中,observer有警報器和顯示器,它們採取的行動分別是發出警報和顯示水溫。

在本例中,事情發生的順序應該是這樣的:

1.警報器和顯示器告訴熱水器,它對它的溫度比較感興趣(註冊)。

2.熱水器知道後保留對警報器和顯示器的引用。

3.熱水器進行燒水這一動作,當水溫超過 95 度時,通過對警報器和顯示器的引用,自動呼叫警報器的 makealert

()方法、顯示器的 showmsg()方法

///

/// 熱水器

///

class heater

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

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

C 設計模式觀察者

在observer pattern 觀察者模式 中,此類作為所有subject 目標 的抽象基類 所有要充當subject的類 在此事例中為 貓 都繼承於此類.我們說此類作為模型,用於規劃目標 即發布方 所產生的事件,及提供觸發 事件的方法.此抽象類無抽象方法,主要是為了不能例項化該類物件,確保模式...

C 設計模式 觀察者模式

觀察者模式 也可以稱為通知者模式,訂閱 發布模式 模型 檢視模式 大致概念 乙個主題 theme 多個觀察者 observer 收聽它。就好比 春節聯歡晚會 theme 全國觀眾 observer 現場直播。那麼我們怎樣看直播呢?沒有電視你看的成嗎?有電視,但是沒有全國直播,你看的成嗎?好了,這樣說...