行為型模式 觀察者模式

2021-08-29 12:13:37 字數 916 閱讀 1890

抽象觀察者,及具體觀察者

class abstractobserver

;class student :public abstractobserver

virtual void

dobadthing()

//老師沒來應該幹什麼

virtual void

onteachercoming()

//老師來了應該幹什麼

private:

string m_name;

string m_badthing;

};

抽象觀察目標,及具體目標

class abstractsubject

;class monitor :public abstractsubject //班長

virtual void

delstudent

(abstractobserver* student)

//刪除觀察者(學生)

virtual void

notifyallstudent()

//廣播資訊,老師來了,學生應該更新狀態}

private:

list

> m_list;

};

呼叫:

int

main()

結果:學生都在幹壞事同時觀察班長,班長看到老師,通知學生,學生馬上學習

(2) 建立一套觸發機制。

行為型模式 觀察者模式

物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新。subject 抽象的主題,被觀察的物件,提供 attach 和detach observer 物件的介面。concretesubject 具體的被觀察物件,維持 concretesubject 狀態...

十六 行為型模式 觀察者模式

一 觀察者模式 觀察者模式很好理解,類似於郵件訂閱和rss訂閱,當我們瀏覽一些部落格或wiki時,經常會看到rss圖示,就這的意思是,當你訂閱了該文章,如果後續有更新,會及時通知你。其實,簡單來講就一句話 當乙個物件變化時,其它依賴該物件的物件都會收到通知,並且隨著變化!物件之間是一種一對多的關係。...

行為型模式(4) 觀察者模式

指多個物件間存在一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新。這種模式有時又稱作發布 訂閱模式 模型 檢視模式,它是物件行為型模式。適用場景 如果存在一系列類,他們都需要向指定類獲取指定的資料,當獲取到資料後需要觸發相應的業務邏輯。這種場景就可以用觀察者模式...