您当前的位置: 首页 > 

phymat.nico

暂无认证

  • 3浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

设计模式-行为-命令

phymat.nico 发布时间:2017-10-07 20:19:06 ,浏览量:3

#pragma once

#ifndef COMMAND_H 

#define COMMAND_H 

class Command 
{ 
public: 
	virtual ~Command() {} 
	virtual void Execute() = 0; 
}; 

class Receiver 
{ 
public: 
	void Action(); 
}; 

class Invoker 
{ 
public: 
	Invoker(Command *pCommand); 
	~Invoker(); 
	void Invoke(); 

private: 
	Command *m_pCommand; 
}; 

class ConcreateComand : public Command 
{ 
public: 
	ConcreateComand(Receiver* pReceiver); 
	virtual ~ConcreateComand(); 
	virtual void Execute(); 

private: 
	Receiver* m_pReceiver; 
}; 

#endif 
#include "StdAfx.h"
#include "command_impl.h"

#include  

void Receiver::Action() 
{ 
	std::cout Execute(); 
	} 
} 

ConcreateComand::ConcreateComand(Receiver* pReceiver) 
: m_pReceiver(pReceiver) 
{ 
} 

ConcreateComand::~ConcreateComand() 
{ 
	delete m_pReceiver; 
	m_pReceiver = NULL; 
} 

void ConcreateComand::Execute() 
{ 
	if (NULL != m_pReceiver) 
	{ 
		m_pReceiver->Action(); 
	} 
	std::cout Invoke(); //先处理注册回调,在回调中处理具体事务

	delete pInvoker; 

	system("pause"); 
	return 0;
}

关注
打赏
1659628745
查看更多评论
立即登录/注册

微信扫码登录

0.1731s