observer.h

来自「23中设计模式大家都应该知道吧」· C头文件 代码 · 共 50 行

H
50
字号
//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 //~_OBSERVER_H_

⌨️ 快捷键说明

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