zoukankan      html  css  js  c++  java
  • 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等问题。
    其真正的使用价值,还是要在实际的项目中才能体现出来。


     

  • 相关阅读:
    TUN/TAP区别
    从日志文件解决ArcGIS Server性能低下问题的步骤(1)
    java异常
    Maven
    前车之鉴-web篇
    图论复习总结
    奇(qi)谋(ji)巧(yin)计(qiao)
    莫比乌斯反演呓语
    学习后缀数组笔记
    浅读叶青学长竞赛学习知识目录
  • 原文地址:https://www.cnblogs.com/BearOcean/p/388690.html
Copyright © 2011-2022 走看看