例子
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 复活