命令模式(封装调用)

命令模式是一种设计模式,它将请求封装为对象,实现请求者和执行者之间的解耦。通过命令对象,调用者仅需调用execute()方法,即可触发接收者执行相关操作。此模式支持撤销操作、队列请求、日志记录和事务处理,适用于需要动态指定、排列和执行请求的场景。
摘要由CSDN通过智能技术生成

我们将把封装带到一个全新的境界:把方法调用(method invocation)封装起来

命令模式可将“动作的请求者” 从 “动作的执行者”中解耦。在设计中采用“命令对象”,利用命令对象,把请求(例如打开电灯)封装成一个特定的对象(例如客厅电灯对象)。所以,每个按钮都存储一个命令对象,那么当按钮被按下的时候,就可以请命令对象做相关的工作。遥控器并不知道工作内容是什么,只要有个命令对象能和正确的对象沟通,把事情做好就可以了。所以,遥控器和电灯对象解耦了。


加载调用者

1,客户创建一个命令对象。

2,客户利用setCommand()将命令对象存储在调用者中。

3,稍后。。。。客户要求调用者执行命令。请注意,就像在本章稍后会看到的:一旦命令被加载到调用者,该命令可以被使用并丢弃,或者可以被保留下来并使用多次。



命令模式的定义:

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

现在,仔细看这个定义。我们知道一个命令对象通过在特定接受者上绑定一组动作来封装一个请求。要达到这一点,命令对象将动作和接受者包进对象中。这个对象只暴露出一个execute()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值