參考:
定義了一種一對多的依賴關係,讓多個觀察者物件監聽某乙個主題物件。這個主題物件在狀態發生變化時,會通知所有觀察者物件,使它們能夠自動更新自己。
#include "observer.h"
#include #include using namespace std;
observer::observer()
{}observer::~observer()
{}concreteobservera::concreteobservera()
{}concreteobservera::~concreteobservera()
{}void concreteobservera::update(subject* psubject)
concreteobserverb::concreteobserverb()
{}concreteobserverb::~concreteobserverb()
{}void concreteobserverb::update(subject* psubject)
subject::subject()
{}subject::~subject()
{}void subject::attach(observer* pobserver)
void subject::detach(observer* pobserver)
cout << "detach an observer\n";
}void subject::notify()
}string subject::getstate()
void subject::setstate(string state)
concretesubjecta::concretesubjecta()
{}concretesubjecta::~concretesubjecta()
{}concretesubjectb::concretesubjectb()
{}concretesubjectb::~concretesubjectb()
{}
mian.cpp
#include "observer.h"
#include using namespace std;
int main()
現象:
軟體設計模式 觀察者模式(Observer)
當物件間存在一對多關係時,則使用觀察者模式 observer pattern 比如,當乙個物件被修改時,則會自動通知它的依賴物件。觀察者模式屬於行為型模式。1 拍賣的時候,拍賣師觀察最高標價,然後通知給其他競價者競價。2 西遊記裡面悟空請求菩薩降服紅孩兒,菩薩灑了一地水招來乙個老烏龜,這個烏龜就是觀...
軟體設計模式之觀察者模式
軟體設計模式我的個人理解 1.寫過的東西不要重複寫,浪費人力,畢竟現在都提倡低碳環保。2.軟體不是搬磚,一層一層不停的壘上去,那是苦力,善於發現共通的地方,模組化拼接。3.軟體不是寫給自己的,大家一起要能看,這是全人類的財富,符合統一規範,也要別人能理解你,更輕鬆的理解你。觀察者模式 首先把其他小名...
python 設計模式 觀察者 觀察者設計模式
在觀察者設計模式這種模式中,物件被表示為等待事件觸發的觀察者。一旦發生指定的事件,觀察者就會關注該主體。當事件發生時,主體告訴觀察者它已經發生。以下uml圖表示觀察者模式 如何實現觀察者模式?現在讓我們來看看如何實現觀察者模式。參考以下實現 import threading import time ...