读:<大话设计模式>COMMAND模式 有感
意图
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。[GOF 《设计模式》]
我的描述:
就是把一条条命令封装起来,排队起来,把请求者与实现者分开
像BRUCE ZHANG里面描述的,就是在安装过程中把每一个安装步骤抽象出来,放在一个消息队列中
而像张子阳先生博客里面描述的,也是把其遥控器的每一个命令抽象出来,通过接口访问,分配出去
而TerryLee先生举出的,文档操作过程中的下一步,上一步,可撤消
而《大话设计模式》描述的是:吃肉串的时候!
坏的例子:
路边滩烤肉店老板,与吃烤肉的人,还有烤肉,都连在一起,如果老板烤肉过程中有什么不对劲,吃烤肉的人一马就知道了,但他不应该知道,就就是耦合在一起了
好的例子
烤肉的师付,烤肉店的服务生,吃烤肉的人,还有烤肉,
师付只管烤
服务生只管记,记交给师付
吃烤肉的人尽管点,交给服务员
这样就实现了分开
而这个点餐的记录,或许就是一种命令吧
可以这样看,就是把原来 点餐人。烤肉师付(烤牛肉)==>点餐人(烤牛肉) 服务生收到==> 登记 合成=>告诉师符取出肉来
这就是看了这么一章的想法吧
其实没什么大想法,还是得靠项目实践喽
也保存了几遍文章
以后遇到这种可以是一串命令请求一起作为消息队列处理的,就可以想想,是否可以用到这种模式
但这里有个问题:要是命令很多咋办啊