您的位置:首页 > 编程语言 > C#

命令模式(Command Pattern)

2006-10-21 23:58 330 查看
   命令模式可以在一个对象中封装一个请求,这样,我们可以把方法调用作为对象进行管理,并在满足时序关系或者满足某些条件的情况下,传递这些对象,并且调用这些对象。[Steve.Metsker《C#设计模式》]
  将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。[GOF 《设计模式》]
  命令模式根本目的在于将命令的请求和命令的响应现实进行解耦。一个请求根据情况可以有不同的响应。



如图所示,Command类抽象了所需要的二个操作,并在CalculatorCommand类中实现了这二个操作。User对象在每执行Computer方法一次时,都将真正完成此功能的Command对象保存在commands列表中,并保存当前Command对象的位置。这样,当User执行Redo或Undo的时候,实际是调用了当前Command对象的二个对应方法来完成功能。一个系统中往往存在多个Command抽象类的子类,但User对象只需要调用当前对象的相应方法,而不管当前的对象到底是Command抽象类的子类。
  另一种实现方法是利用委托机制。为一个请求的委托提供不同的实现,从而得到不同的请求响应。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  command 设计模式 user c#