Welcome

首页 / 软件开发 / 数据结构与算法 / 解读设计模式----命令模式(Command Pattern)

解读设计模式----命令模式(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