设计模式——命令模式

cpp 复制代码
class Handle
{
public:
	void way1()
	{
		cout << "way1" << endl;
	}
	void way2()
	{
		cout << "way2" << endl;
	}
	void way3()
	{
		cout << "way3" << endl;
	}
};
class command
{
public:
	virtual void handle() = 0;
};
// 把way1封装成一个请求
class Way1 :public command
{
public:
	Way1(Handle* h) :_h(h) {};
	virtual void handle()
	{
		_h->way1();
	}
	Handle* _h;
};
class Way2 :public command
{
public:
	Way2(Handle* h) :_h(h) {};
	virtual void handle()
	{
		_h->way2();
	}
	Handle* _h;
};
class Way3 :public command
{
public:
	Way3(Handle* h) :_h(h) {};
	virtual void handle()
	{
		_h->way3();
	}
	Handle* _h;
};
class service
{
public:
	void addway(command* command)
	{
		mCommand.push(command);
	}
	void start()
	{
		while (!mCommand.empty())
		{
			Sleep(200);
			command* c = mCommand.front();
			c->handle();
			mCommand.pop();
		}
	}
	queue<command*> mCommand;
};
void test()
{
	Handle* h = new Handle;
	command* m1 = new Way1(h);
	command* m2 = new Way2(h);
	command* m3 = new Way3(h);
	service* ser = new service;
	ser->addway(m1);
	ser->addway(m2);
	ser->addway(m3);
	ser->start();
}
int main()
{
	test();
	return 0;
}

这个设计模式有点类似C/S模式,客户端向服务器发送指令,服务器要根据约定的协议做出相应的回应。

相关推荐
御承扬8 小时前
编程素养提升之EffectivePython(Builder篇)
python·设计模式·1024程序员节
杯莫停丶11 小时前
设计模式之:享元模式
java·设计模式·享元模式
杯莫停丶11 小时前
设计模式之:组合模式
设计模式·组合模式
Hero | 柒13 小时前
设计模式之建造者模式
java·设计模式·1024程序员节
周杰伦_Jay15 小时前
【常用设计模式全解析】创建型模式(聚焦对象创建机制)、结构型模式(优化类与对象的组合关系)、行为型模式(规范对象间的交互行为)
设计模式·架构·开源·交互·1024程序员节
杯莫停丶18 小时前
设计模式之:外观模式
java·设计模式·外观模式
杯莫停丶18 小时前
设计模式之:命令模式
设计模式·命令模式·1024程序员节·活动勋章
电子科技圈21 小时前
芯科科技推出智能开发工具Simplicity Ecosystem软件开发套件开启物联网开发的新高度
mcu·物联网·设计模式·软件工程·软件构建·iot·1024程序员节
WaWaJie_Ngen21 小时前
【设计模式】组合模式(Composite)
设计模式·组合模式·1024程序员节
WaWaJie_Ngen1 天前
【设计模式】装饰器模式(Decorator)
设计模式·装饰器模式