2024.11.24命令模式
命令模式(Command Pattern)是一种行为型设计模式,它将请求或简单操作封装为一个对象。这种模式提供了一种方法来参数化其他对象,将操作延迟到适当的时候执行,并支持撤销操作。命令模式通常用于以下场景:
- 需要将操作封装为对象:当需要将操作作为参数传递给其他对象时。
- 需要支持撤销和重做:当需要记录操作历史以支持撤销和重做功能时。
- 需要解耦请求的发送者和接收者:当需要降低系统组件之间的耦合度时。
命令模式的主要组件包括:
- Command(命令接口):定义命令的接口,声明执行操作的方法。
- ConcreteCommand(具体命令):实现Command接口,定义接收者和要执行的操作。
- Client(客户):创建具体的命令对象,并设置其接收者。
- Invoker(调用者):要求命令对象执行请求。
- Receiver(接收者):知道如何实施与执行一个请求相关的操作。
下面是一个简单的命令模式的代码示例:
在这个例子中,Command
是命令接口,LightOnCommand
和 LightOffCommand
是具体命令,它们分别封装了打开和关闭灯的操作。Light
是接收者,它知道如何实施操作。RemoteControl
是调用者,它通过设置不同的命令来执行不同的操作。Client
是客户端代码,它创建具体的命令对象,并设置调用者。
命令模式的主要优点是它将发起操作的对象(调用者)和执行操作的对象(接收者)解耦,并且可以灵活地新增命令对象,使得系统更加灵活和可扩展。
__EOF__

本文作者:258333
本文链接:https://www.cnblogs.com/258-333/p/18566578.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/258-333/p/18566578.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体