observer.h

来自「设计模式全部演示代码,都可以编译通过,通过这些例子,在研究c++下的设计模式,特」· C头文件 代码 · 共 51 行

H
51
字号
//Observer.h
#ifndef _OBSERVER_H_ 
#define _OBSERVER_H_

#include "Subject.h"
#include <string> 
using namespace std;

typedef string State;

class Observer 
{ 
public: 
	virtual ~Observer();
	virtual void Update(Subject* sub) = 0;
	virtual void PrintInfo() = 0;
protected: 
	Observer();
	State _st;
private:
};

class ConcreteObserverA:public Observer 
{ 
public: 
	virtual Subject* GetSubject(); 
	ConcreteObserverA(Subject* sub);
	virtual ~ConcreteObserverA();
	//传入Subject作为参数,这样可以让一个View属于多个的Subject。 
	void Update(Subject* sub);
	void PrintInfo();
protected:
private: 
	Subject* _sub;
};

class ConcreteObserverB:public Observer 
{ 
public: 
	virtual Subject* GetSubject(); 
	ConcreteObserverB(Subject* sub);
	virtual ~ConcreteObserverB();
	//传入Subject作为参数,这样可以让一个View属于多个的Subject。 
	void Update(Subject* sub);
	void PrintInfo();
protected:
private: 
	Subject* _sub;
};

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?