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 現場直播。那麼我們怎樣看直播呢?沒有電視你看的成嗎?有電視,但是沒有全國直播,你看的成嗎?好了,這樣說...