//接收者类
class Receiver
{
//真正执行命令
public void Action()
{
Console.WriteLine("执行命令");
}
}
//命令抽象类
abstract class Command
{
//命令应该知道接收者是谁,所以有Receiver这个对象
protected Receiver receiver;
public Command(Receiver receiver)
{
this.receiver = receiver;
}
//执行命令操作
public abstract void Execute();
}
//具体命令类
class ConcreteCommand : Command
{
public ConcreteCommand(Receiver receiver) : base(receiver) { }
public override void Execute()
{
//调用接收者来执行命令
receiver.Action();
}
}
//调度类 要求命令执行这个请求
class Invoker
{
//调度者应该知道被请求的命令,所以有Command这个成员变量
private Command command;
//设置命令
public void SetCommand(Command command)
{
this.command = command;
}
//执行命令
public void ExecuteCommand()
{
command.Execute();
}
}
class Program
{
static void Main(string[] args)
{
Receiver receiver = new Receiver();
Command command = new ConcreteCommand(receiver);
Invoker invoker = new Invoker();
invoker.SetCommand(command);
invoker.ExecuteCommand();
Console.Read();
}
}
来源: http://www.bubuko.com/infodetail-2266073.html