解读设计模式----命令模式(Command Pattern)2011-12-28 博客园 Bēniaǒ本文与作者原文有一定的偏差,其中加入了一部分是个人看法,详细请查看作者原文。***原文连接http://www.dofactory.com/Patterns/PatternCommand.aspx命令模式意图:GOF 在《设计模式》一书中阐述其意图:“将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。”这里所谓的“不同的请求”也既意味着请求可能发生的变化,是一个可能扩展的功能点。命令模式UML图:

Command模式将一个请求封装为一个对象,从而使你可以使用不同的请求对客户进行参数化。简单示例: Client
1using System;2using System.Collections.Generic;3using System.Text;45namespace DesignPattern.Command6{7 class Program8 {9 static void Main(string[] args)10 {11 // 创建receiver、command和invoker12 Receiver receiver = new Receiver();1314 //根据多态,父类的引用指向子类对象15 Command command = new ConcreteCommand(receiver);16 Invoker invoker = new Invoker();1718 //设置和执行命令19 invoker.SetCommand(command);20 invoker.ExecuteCommand();2122 Console.Read();23 }24 }25}26