场景:下多个命令,然后组合,其中可以撤销命令,通知命令去执行
我的实现
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace StrategyMo { public abstract class Command { protected Command_Execute_Person executor; public Command(Command_Execute_Person person) { this.executor = person; } public abstract void Execute(); } public class ConcreteCommand : Command { public ConcreteCommand(Command_Execute_Person person) : base(person) { } public override void Execute() { executor.Action(); } } public class Command_Sender { private Command command; public void SetCommand(Command cmd) { this.command = cmd; } public void ExecuteCommand() { command.Execute(); } } public class Command_Execute_Person { public void Action() { Console.WriteLine("执行命令"); } } }
客户端
//准备 Command_Execute_Person p = new Command_Execute_Person(); Command c = new ConcreteCommand(p); //开始 Command_Sender i = new Command_Sender(); i.SetCommand(c); i.ExecuteCommand();
效果: