设计模式-》命令模式

例子


    public class CommandLineArgs
    {
        public CommandLineArgs(string command, params string[] args)
        {
            Command = command;
            Args = args;
        }

        public string Command { get; }

        public string[] Args { get; }
    }


    public interface IConsoleCommand
    {
        void ExecuteAsync(CommandLineArgs commandLineArgs);
    }


    public class GodConsoleCommand : IConsoleCommand
    {
        public void ExecuteAsync(CommandLineArgs commandLineArgs)
        {
            Console.WriteLine($"给{commandLineArgs.Args[0]}增加无敌BUFF");
        }
    }

    public class KillConsoleCommand : IConsoleCommand
    {
        public void ExecuteAsync(CommandLineArgs commandLineArgs)
        {
            Console.WriteLine($"杀死{commandLineArgs.Args[0]}");
        }
    }

    public class ReviveConsoleCommand : IConsoleCommand
    {
        public void ExecuteAsync(CommandLineArgs commandLineArgs)
        {
            Console.WriteLine($"复活{commandLineArgs.Args[0]}");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var arg = args[1];
            var common = new CommandLineArgs(args[0], arg);
            if (args[0] == "god")
            {
                new GodConsoleCommand().ExecuteAsync(common);
            }

            if (args[0] == "kill")
            {
                new KillConsoleCommand().ExecuteAsync(common);
            }

            if (args[0] == "revive")
            {
                new ReviveConsoleCommand().ExecuteAsync(common);
            }
        }
    }

控制台命令:

  • CommandPattern god uid 无敌
  • CommandPattern kill uid 杀死
  • CommandPattern revive uid 复活
posted @ 2022-01-14 20:38  icxl  阅读(58)  评论(0编辑  收藏  举报