Observer觀察者設計模式

2022-01-14 19:17:00 字數 1004 閱讀 6472

observer設計模式主要包括以下兩種物件:

(1)被觀察物件:subject,它往往包含其他物件感興趣的東西,上面例子中熱水器中就是subject(被監視物件);

(2)觀察物件:observer,它觀察著subject,當subject中的某件事發生後,會告知observer,obersver會採取相應的行動。上面例子中顯示器和報警器就是觀察物件,當油箱中溫度大於95°時,報警器和顯示器就會做出相應的警報;

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

}//////

subject被觀察物件 ---oil熱水器

/// internal

class

oil

public boileventargs(int

temperature)

}public

void

boilwater() }}

}//////

observer觀察物件 ---警報器

/// internal

class

alarm

度了,當前熱水器的牌子是,**是

",a.temperature, o.brand, o.price);}}

//////

observer觀察物件 ---顯示器

/// internal

class

display

度,當前熱水器的牌子是,**是

", a.temperature, o.brand, o.price);

console.readkey();}}

}

Observer 觀察者 設計模式

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

觀察者(observer)設計模式

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

設計模式 觀察者模式(observer

有時被稱作發布 訂閱模式,觀察者模式定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態發生變化時,會通知所有觀察者物件,使它們能夠自動更新自己。很經典的是cegui中的事件通知模式 模式中的角色 1 抽象主題 它把所有觀察者物件的引用儲存到乙個聚集裡,每個主題都可...