【设计模式】-命令模式(method)

把方法调用封装起来,通过封装方法调用,可以把运算块包装成形。调用此运算的对象不需要关心事情是如何进行的,只要知道如何使用包装成形的方法来完成它就可以了。

命令模式将动作的请求者与动作的执行者对象中解耦。将“请求”封装成对象,以便使用不同的请求队列或者日志来参数化其他对象。命令模式也可以支持撤销的 操作。

一个命令对象通过在特定接收者上绑定一组动作来封装一个请求。这个对象只暴露出一个execute()方法(有时候会有undo()方法),当此方法被调用的时候,接收者就会进行这些动作。

命令模式的更多用途:

1)队列请求

命令可以将运算块打包,然后将它传来传去,就像是一般的对象。即使在命令对象被创建许久之后,运算依然可以被调用。甚至可以在不同的线程中被调用。

2)日志请求

某些应用需要我们将所有动作记录在日志中,并能在系统死机之后重新调用这些动作恢复到之前的状态。

class ICommand{
	public:
		virtual ~ICommand(){}

		virtual void execute();
}

class ObjectOnCommand : public ICommand{
	public:
		void execute(){
			//do someting;
		}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值