class1.cs

来自「来自DoFactory的设计模式, 由于是本人根据已有代码创建,没有NETOpt」· CS 代码 · 共 87 行

CS
87
字号
// Command pattern -- Structural example  

using System;

namespace DoFactory.GangOfFour.Command.Structural
{

    // MainApp test applicatio 

    class MainApp
    {
        static void Main()
        {
            // Create receiver, command, and invoker 
            Receiver receiver = new Receiver();
            Command command = new ConcreteCommand(receiver);
            Invoker invoker = new Invoker();

            // Set and execute command 
            invoker.SetCommand(command);
            invoker.ExecuteCommand();

            // Wait for user 
            Console.Read();
        }
    }

    // "Command" 

    abstract class Command
    {
        protected Receiver receiver;

        // Constructor 
        public Command(Receiver receiver)
        {
            this.receiver = receiver;
        }

        public abstract void Execute();
    }

    // "ConcreteCommand" 

    class ConcreteCommand : Command
    {
        // Constructor 
        public ConcreteCommand(Receiver receiver)
            :
          base(receiver)
        {
        }

        public override void Execute()
        {
            receiver.Action();
        }
    }

    // "Receiver" 

    class Receiver
    {
        public void Action()
        {
            Console.WriteLine("Called Receiver.Action()");
        }
    }

    // "Invoker" 

    class Invoker
    {
        private Command command;

        public void SetCommand(Command command)
        {
            this.command = command;
        }

        public void ExecuteCommand()
        {
            command.Execute();
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?