zoukankan      html  css  js  c++  java
  • 解读设计模式命令模式(Command Pattern)

    ***本文与作者原文有一定的偏差,其中加入了一部分是个人看法,详细请查看作者原文。***
    原文连接http://www.dofactory.com/Patterns/PatternCommand.aspx

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

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

    简单示例:

    Client

    Command

    Invoker

    Receiver

    运行结果:

    Called Receiver.Action()


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

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

    参考资料:
    TerryLee------.NET设计模式系列
    Bruce Zhang---《软件设计精要与模式》
    www.dofactory.com
    本文示例源码下载
       

  • 相关阅读:
    the schema version of 'microsoft.aspnet.mvc' is incompatible with version of nuget
    ODBC连接到400
    PC端使用program來CHGUSRPRF
    Could not load file or assembly 'System.Data.SQLite' or one of its dependencies. An attempt was made
    编辑器,按钮等等,图片上传到服务器的原理-----图片上传预览原理及实现
    dedecms,ajax提交,前端验证,前端提示,以及30秒后再提交
    js提交表单的时候,30秒后才能提交第二次
    z-dialog下载,以及使用教程---下载zdialog以后,有案例,那里才是官方最全的教程
    Resource interpreted as Stylesheet but transferred with MIME type application/javascript
    dedecms ajax表单提交,以及如何返回json的数据,以及数组的写法
  • 原文地址:https://www.cnblogs.com/beniao/p/1145867.html
Copyright © 2011-2022 走看看