您的位置:首页 > 其它

命令模式

2016-02-03 16:51 183 查看
命令模式:

将一个请求封装为一个对象,使得可用不同的请求对客户进行参数化(区分),对请求排队或记录请求日志,及支持可撤销操作。

具体来说:去饭店吃饭,客户Clinet点完餐(发出命令或请求)之后等着就行了,不需要关心真正地服务员(接收信息者)是谁、叫什么名字,也不需要关心饭菜谁去做,怎么做,自然会有相应的服务人员nvoker去通知、记录,相应的厨师Receiver去炒菜、做饭;在这次吃饭的过程中客户可以点不同的菜(同一个请求可以有不同的内容),因此炒的菜不一样,每种菜炒的方式不一样,但是同一种菜,比如点的“鱼香肉丝”,他的做法差不多(命令实现对象是对客户端某个请求的封装),在哪个餐厅点这个菜最后出现的不会变成”日本豆腐“。

不知道说的对不对,为了不误人子弟,推荐一篇博客

http://www.cnblogs.com/sjms/archive/2010/07/09/1774069.html

结构图:



作用:

较容易设计一个命令队列

可以容易地实现对请求的撤销和重做

新加进新的具体命名类不影响其他的类

需要情况下,较容易的将命名记入日志

容许接收请求的一方决定是否要否决该请求

只有真正需要如撤销、恢复操作等功能时,把原来的代码重构为命名模式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: