• Command 模式


      Command 模式

    大多数类都是一组方法和相应的一组变量的结合。而Command 仅仅由一个具有唯一方法的接口组成。简单的几乎可笑。所以有人说该模式具有功能分解的意味,根本是对面向对象的亵渎。

    Public interface Command             

    {

     public void do();

    }

     

    就是这样形成了最简单的Command模式,具体的命令实现了Command接口的Do方法。
    所以Command的拥有者不需要知道Comman具体干了什么,只需要调用与之绑定的
    Command.do方法就可以了。

     已一个模拟实现门开关,和敲击的程序为例,就可以运用Command模式。



     

    可以这样阐述这个问题,程序创建一个DoorUI的实例。该实例可以假象成一个WebForm或则WinForm 他能接受用户的输入。

    他能够探知用户是在开门,还是关门,还是敲门。甚至是其他操作。
    当他接收到用户的输入。便生成一个Command实例。例如有人试图开门:
    Command Cmd =new OpenCommand();
    然后DoorUI触发一个事件表示接收到了一个用户命令,并且将该命令传输给Application

    EventGetCommand (aCmd);
    当Application收到该事件以后,直接调用Cmd.do()方法便可。
    ADoor.Cmd =aCmd;
    ADoor.Cmd.do();
    这个是最简单的例子。目前我对Command的理解也限制于这个层面。当我们需要添加一个按门铃的操作时 只需要编写一个实现Command接口的新类:RingCommand就可以了。
    除此以外,Command模式也可以很好的解决事务操作以及Do和UnDo等问题。
    其真正的使用价值,还是要在实际的项目中才能体现出来。


     

  • 相关阅读:
    日常练习-利用python的random模块模拟身份证号码
    学习笔记-redis
    学习笔记-AJAX&JSON
    学习笔记-JQuery
    学习笔记-Filter&Listener
    学习笔记-EL&JSTL
    学习笔记-Cookie&Session
    学习笔记-Response
    学习笔记-XML
    JToken中并没有Value这个属性,但在运行时可以看到,用dyna可以取到这个属性值
  • 原文地址:https://www.cnblogs.com/BearOcean/p/388690.html
Copyright © 2020-2023  润新知