随笔 - 292  文章 - 38  评论 - 3616  阅读 - 190万

解读设计模式----命令模式(Command Pattern)

***本文与作者原文有一定的偏差,其中加入了一部分是个人看法,详细请查看作者原文。***
原文连接http://www.dofactory.com/Patterns/PatternCommand.aspx

命令模式意图:
  GOF 在《设计模式》一书中阐述其意图:“将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。”这里所谓的“不同的请求”也既意味着请求可能发生的变化,是一个可能扩展的功能点。

命令模式UML图:
         
  Command模式将一个请求封装为一个对象,从而使你可以使用不同的请求对客户进行参数化。

简单示例:

Client

Command

Invoker

Receiver

运行结果:

Called Receiver.Action()


 
    在众多的设计模式中,Command模式是很简单也很优雅的一种设计模式。Command模式它封装的是命令,把命令发出者的责任和命令执行者的责任分开。[TerryLee]

注意:
    如果比较类图结构,我门会发现Command模式、Strategy模式、State模式是完全一样的。事实正是如此,由于他门的设计思想都是对易于变化的部分进行抽象、或为接口。唯一的区别,就是所抽象的行为职责不同而已,这一点从各自的名字就可以看出。

参考资料:
TerryLee------.NET设计模式系列
Bruce Zhang---《软件设计精要与模式》
www.dofactory.com
本文示例源码下载
   

posted on   Bēniaǒ  阅读(3632)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述

点击右上角即可分享
微信分享提示