command.h

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

H
54
字号
//Command.h
#ifndef _COMMAND_H_ 
#define _COMMAND_H_

class Reciever;
class Command 
{ 
public: 
	virtual ~Command();
	virtual void Excute() = 0;
protected: 
	Command();
private:
};

class ConcreteCommand:public Command 
{ 
public: 
	ConcreteCommand(Reciever* rev);
	~ConcreteCommand();
	void Excute();
protected:
private: 
	Reciever* _rev; 
};

//下面是通过模板的方式来参数化请求的接收者
template <class Reciever> class SimpleCommand:public Command 
{ 
public: 
	typedef void (Reciever::* Action)();

	SimpleCommand(Reciever* rev,Action act) 
	{ 
		_rev = rev;
		_act = act; 
	}

    virtual void Excute() 
	{ 
		(_rev->* _act)(); 
	}

    ~SimpleCommand() 
	{ 
		delete _rev; 
	}
protected:
private:
	Reciever* _rev;
	Action _act; 
};
#endif //~_COMMAND_H_

⌨️ 快捷键说明

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