您的位置:首页 > 其它

命令模式

2014-01-21 14:56 183 查看


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

***本文与作者原文有一定的偏差,其中加入了一部分是个人看法,详细请查看作者原文。***

原文连接http://www.dofactory.com/Patterns/PatternCommand.aspx

命令模式意图:

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

[b]命令模式UML图:[/b]

         


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

简单示例:


Client


Command


Invoker


Receiver
运行结果:
Called Receiver.Action()

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

注意:

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

参考资料:

TerryLee------.NET设计模式系列

Bruce Zhang---《软件设计精要与模式》

www.dofactory.com

本文示例源码下载
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: