zoukankan      html  css  js  c++  java
  • Command 模式设计(原创)

    "Command"" 顾名思义 "命令""指令"的意思
     Command 模式在现实当中的场景
      例如:某一天,校长在教室走廊碰到了 高三一班的王老师,校长对王老师说":叫 高三一班的班长到他办公室去"(相当于命令),王老师接到校长的命令后,立即走到高三一班教室里面(执行校长的命令) 然后通知高三一班班长到校长办公室去.班长(命令接收者)听到命令后,就去了校长办公室.  通过这个场景大家应该对Command 模式有点印象了.

    代码如下:

    abstract class command //命令
    {
        
    protected Monitor mt;//班长mt

        public command(Monitor mt)
        
    {
            
    this.mt =
     mt;
        }


        
    abstract public void ToOffice();//去校长办公室
    }


    class ImmediateToOffice : command//马上到校长办公室(具体的命令)
    {

        
    public
     ImmediateToOffice(Monitor mt)
            : 
    base
    (mt)
        
    {

        }

        
    public override void ToOffice()//去校长办公室
        {
            Monitor ch 
    = new Monitor();//班长

            ch.chToOffice();//班长到校长办公室
        }

    }


    class Monitor //班长
    {

        
    public void chToOffice()//班长去校长办公室

        {

            Console.WriteLine(
    "去校长办公室"
    );
        }



    }


    class Teacher //老师
    {

        
    private command cd;//命令

        public void Receivecd(command cd)//老师接受命令
        {

            
    this.cd =
     cd;
        }


        
    public void Implementcd()//老师执行接收到的命令
        {

            cd.ToOffice();

        }



    }


    class Program
    {
        
    public static void Main(string
    [] args)
        
    {
            Monitor mt 
    = new Monitor();//班长(接收者)

            command cd1 = new ImmediateToOffice(mt);//命令为"叫班长马上到校长办公室去"
            Teacher tc = new Teacher();//王老师(请求者)
            tc.Receivecd(cd1);//老师接到命令
            tc.Implementcd();//老师执行命令
        }

    }
     


    输出:去校长办公室。

      综上说述一个简单的命令模式就呈现在大家的面前,但仔细想下,从这个场景来看,有点象委托的味道,如校长委托王老师叫高三一班的的班长去他办公室.但不能与此委托等同.
  • 相关阅读:
    Win Form 项目中app.config读取和修改 [ZT]
    实现全站统一的Page_PreInit()等事件
    DateTime的所有格式化输出
    大三下的半学期快过去了。。
    SQL Server 中易混淆的数据类型
    解决RD2作业在IE和Fire Fox中CSS效果不同的问题~
    AJAX也广告?
    App_Code目录下的全局类
    怀疑我不是那种材料。。
    用了几天Asp.Net 2.0遇到的几个小问题
  • 原文地址:https://www.cnblogs.com/xiaobaigang/p/892059.html
Copyright © 2011-2022 走看看