Observer 觀察者模式

2021-07-24 17:50:35 字數 1905 閱讀 5111

#include "stdafx.h"

#include #include #include #include #include #include #include using namespace boost;

//使用類的繼承,抽象類可以實現多型和提高內聚性

//主角1資料

typedef struct _subject1data

subject1data;

//主角2資料

typedef struct _subject2data

subject2data;

class subject;

//觀察者基類

class observer

virtual ~observer(){}

};//主角抽象類

class subject

// virtual ~subject(){}

};//具體主角類1

class concretesubject1 : public subject,public enable_shared_from_this

public:

virtual void addobserver(shared_ptrobserver)

virtual void removeobserver(shared_ptrobserver)

virtual void notify() }

void setdata(int id,const std::string & strname)

const subject1data& getdata()

void printdata()

private:

subject1data __m_data;

};//具體主角類2

class concretesubject2 : public subject,public enable_shared_from_this

virtual void removeobserver(shared_ptrobserver)

virtual void notify() }

void setdata(double dbdata,const std::string & strname)

const subject2data& getdata()

void printdata()

private:

subject2data __m_data;

shared_ptrget_shared_ptr_from_this() };

//具體觀察者a //多重繼承不要忘了加2個public

class observera : public observer, public enable_shared_from_this

virtual void updateforsubject2(shared_ptrsubject2)

virtual void observesubject(shared_ptrsubject)

private:

shared_ptrget_shared_ptr_from_this() };

//具體觀察者b //多重繼承不要忘了加2個public

class observerb : public observer, public enable_shared_from_this

virtual void updateforsubject2(shared_ptrsubject2)

virtual void observesubject(shared_ptrsubject)

private:

shared_ptrget_shared_ptr_from_this() };

void testobservermode()

觀察者模式 Observer

個人理解 觀察者模式的核心是subject的attach和detach方法,載入observer物件 uml類圖 實現 public abstract class subject public void detach observer observer public void notify publ...

觀察者模式 ObServer

觀察者模式 observer 定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生改變時,所有依賴於它的物件都得到通知並被自動更新 觀察者模式 observer 觀察者模式定義了一對多依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。讓主題物件在狀態發生變化時,會通知所有觀察者物件,讓他們能夠自動...

觀察者模式(OBSERVER)

觀察者模式是我選擇將其列出來的第乙個模式。看了這個模式的概念之後,有種豁然開朗的感覺。工作也由實踐上公升到了理論。平時使用的各種 net 控制項都使用了這種模式,將這種模式應用到組成乙個系統的各個元件中去,怎乙個 妙 字了得。理解了它之後,不竟又對 net 的框架敬佩有佳。不知道這其中隱藏了多少未知...