zoukankan      html  css  js  c++  java
  • (行为模式)Command——命令模式

    1、意图

    命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作

    2、核心思想

    命令模式:把一个请求或者操作封装到一个对象中,命令模式把发出命令的责任和执行命令的责任分割开来,委派给不同的对象。命令模式允许请求的一方和发送的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否执行,何时被执行以及是怎么被执行的。

    3、优缺点分析

    GOOD

    一、能较容易地建立一个命令队列;

    二、在需要的情况下,可以较容易地将命令记入日志;

    三、允许接收请求的一方是否拒绝请求;

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

    五、由于加进新的具体命令类不影响其他的类,因此添加一个新命令类不影响其它类

    最关键的优点:命令模式把请求一个操作的对象与知道怎么操行一个操作的对象分开

    适用原则:敏捷开发原则告诉我们,不要为代码添加基于猜测的、实际不需要的功能。如果不清楚一个系统是否需要命令模式,一般不要着急去实现它,事实上、在需要的时候通过重构实现这个模式并不困难,只有在真正需要如撤销、恢复等操作功能时,才把原有的代码重构为命令模式才有意义。

    4、UML图

    clip_image002

    clip_image004

  • 相关阅读:
    Alice and Bob 要用到辗转相减
    Java经典设计模式
    设计模式---创建类---建造者模式
    luogu4267 TamingtheHerd (dp)
    nowcoder172C 保护 (倍增lca+dfs序+主席树)
    nowcoder172A 中位数 (二分答案)
    bzoj4985 评分 (二分答案+dp)
    luogu4269 Snow Boots G (并查集)
    luogu4268 Directory Traversal (dfs)
    bzoj1001/luogu4001 狼抓兔子 (最小割/平面图最小割转对偶图最短路)
  • 原文地址:https://www.cnblogs.com/steven_oyj/p/1764205.html
Copyright © 2011-2022 走看看