using System; using System.Collections.Generic; using System.Text; ///Command(命令)模式可用于将一个请求封装为一个对象,以便使用不同的请求进行参数化。 ///add by jzh 2007-04-15 namespace DesignPattern { abstract class Command { abstract public void Execute(); protected Receiver r; public Receiver R { set { r = value; } } } class ConcreteCommand : Command { override public void Execute() { Console.WriteLine("命令执行"); r.InformAboutCommand(); } } class Receiver { public void InformAboutCommand() { Console.WriteLine("命令接收"); } } class Invoker { private Command command; public void StoreCommand(Command c) { command = c; } public void ExecuteCommand() { command.Execute(); } } public class Client { public static void Main(string[] args) { Command c = new ConcreteCommand(); Receiver r = new Receiver(); c.R = r; Invoker i = new Invoker(); i.StoreCommand(c); i.ExecuteCommand(); Console.ReadLine(); } } }