读:<大话设计模式>COMMAND模式 有感


意图

将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。[GOF 《设计模式》]


我的描述:

就是把一条条命令封装起来,排队起来,把请求者与实现者分开

像BRUCE ZHANG里面描述的,就是在安装过程中把每一个安装步骤抽象出来,放在一个消息队列中

而像张子阳先生博客里面描述的,也是把其遥控器的每一个命令抽象出来,通过接口访问,分配出去

而TerryLee先生举出的,文档操作过程中的下一步,上一步,可撤消

而《大话设计模式》描述的是:吃肉串的时候!



坏的例子:

路边滩烤肉店老板,与吃烤肉的人,还有烤肉,都连在一起,如果老板烤肉过程中有什么不对劲,吃烤肉的人一马就知道了,但他不应该知道,就就是耦合在一起了

好的例子

烤肉的师付,烤肉店的服务生,吃烤肉的人,还有烤肉,

师付只管烤

服务生只管记,记交给师付

吃烤肉的人尽管点,交给服务员

这样就实现了分开

而这个点餐的记录,或许就是一种命令吧



可以这样看,就是把原来 点餐人。烤肉师付(烤牛肉)==>点餐人(烤牛肉) 服务生收到==> 登记   合成=>告诉师符取出肉来

就是把A=》B的关系分开至 A=》C C=》B 而此时C就可以是一个队列,保存着操作,也可撤消

这就是看了这么一章的想法吧

其实没什么大想法,还是得靠项目实践喽

也保存了几遍文章

以后遇到这种可以是一串命令请求一起作为消息队列处理的,就可以想想,是否可以用到这种模式

但这里有个问题:要是命令很多咋办啊







posted @ 2008-03-04 17:40  yellowyu  阅读(250)  评论(0编辑  收藏  举报