command.cpp

来自「详细介绍了20种设计模式的具体实现框架,很有参考价值」· C++ 代码 · 共 59 行

CPP
59
字号
/********************************************************************
	created:	2006/08/04
	filename: 	Command.cpp
	author:		李创
                http://www.cppblog.com/converse/

	purpose:	Command模式的演示代码
*********************************************************************/

#include "Command.h"
#include <iostream>

void Receiver::Action()
{
	std::cout << "Receiver Action\n";
}

Invoker::Invoker(Command *pCommand)
	: m_pCommand(pCommand)
{

}

Invoker::~Invoker()
{
	delete m_pCommand;
	m_pCommand = NULL;
}

void Invoker::Invoke()
{
	if (NULL != m_pCommand)
	{
		m_pCommand->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 << "Execute by ConcreateComand\n";
}

⌨️ 快捷键说明

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