大話設計模式觀察者模式c 實現

2021-10-20 11:14:58 字數 981 閱讀 5671

其他二十三種設計模式

#include

#include

using

namespace std;

//觀察者模式

//抽象觀察者類

class

abstractobserver

;//抽象通知者類

class

abstractsubject

;//具體通知者類

class

concretesubject

:public abstractsubject

//增加觀察者

virtual

void

attach

(abstractobserver* _observer)

//移除觀察者

virtual

void

detach

(abstractobserver* _observer)

//通知觀察者

virtual

void

notify()

}private

: list> observers;

string subjectstate;};

//具體觀察者類

class

concreteobserver

:public abstractobserver

virtual

void

update

(string _subjectstate)

concretesubject*

subject()

private

: string name;

string observerstate;

concretesubject* subject;};

void

test1()

intmain()

大話設計模式之觀察者模式

本節主要內容 1 觀察者模式意圖 2 觀察者模式uml圖描述 3 舉例說明 一 觀察者模式意圖 定義了一種一對多得依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態發生變化時,會通知所有觀察者物件,使它們能夠自動更新自己。define a one to many dependenc...

大話設計模式之觀察者模式

觀察者模式 定義了一種一對多的依賴關係,讓多個觀察者物件同時監聽某乙個主題物件。這個主題物件在狀態上發生變化時,會通知所有觀察者物件,使它們能夠自動更新自己。觀察者模式所涉及的角色有 抽象主題 subject 角色 public abstract class subject 避免同乙個觀察者註冊多次...

大話設計模式之觀察者模式

大話設計模式之觀察者模式 為了了解觀察者模式,我們首先看下報紙的訂閱是怎麼回事 1 報社的業務是出版報紙。2 向某家報社訂閱報紙,只要他們有新報紙出版,就會給你送來。只要你是他們的客戶,你就會一直收到報紙。3 當你不想再看報紙的時候,取消訂閱,他們就不會再送新報紙來。4 只要報社還在運營,就會一直有...