其他二十三種設計模式
#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 只要報社還在運營,就會一直有...