Command Pattern

原创 2004年08月02日 20:57:00

原文:http://www.c-sharpcorner.com/Code/2002/Mar/CommandPatternsInCSCKU.asp

//File Name: ICommand.cs
using System;
public interface ICommand
{
 void Execute();
}

//File Name : DVDPlayCommand.cs
using System;
public class DVDPlayCommand : ICommand
{
 public DVDPlayCommand()
 {
 }

 public void Execute()
 {
  Console.WriteLine("DVD Started.");
 }
}

//File Name: DVDStopCommand.cs
using System;
public class DVDStopCommand : ICommand
{
 public DVDStopCommand()
 {
 }

 public void Execute()
 {
  Console.WriteLine("DVD Stopped.");
 }
}

//File Name: VCRPlayCommand.cs
using System;
public class VCRPlayCommand : ICommand
{
 public VCRPlayCommand()
 {
 }

 public void Execute()
 {
  Console.WriteLine("VCR Started.");
 }
}

//File Name: VCRStopCommand.cs
using System;
public class VCRStopCommand : ICommand
{
 public VCRStopCommand()
 {
 }

 public void Execute()
 {
  Console.WriteLine("VCR Stopped.");
 }
}

//File Name: Romote.cs
using System;
public class Remote
{
 public Remote()
 {
 }

 public void Invoke(ICommand cmd)
 {
  Console.WriteLine("Incoking......");
  cmd.Execute();
 }
}

//File Name: Client.cs
using System;
public class Client
{
 public Client()
 {
 }

 public static int Main(string[] args)
 {
  // Instantiate the invoker object
  Remote remote = new Remote();
  
  // Instantiate DVD related commands and pass them to invoker object
  DVDPalyCommand dvdPlayCommand = new DVDPlayCommand();
  remote.Invoke(dvdPalyCommand);
  
  DVDStopCommand dvdStopCommand = new DVDStopCommand();
  remote.Invoke(dvdStopCommand);

  // Instantiate VCR related Commands and pass them to invoker object
  VCRPlayCommand vcrPlayCommand = new VCRPlayCommand();
  remote.Invoke(vcrPlayCommand);
  
  VCRStopCommand vcrStopCommand = new VCRStopCommand();
  remote.Invoke(vcrStopCommand);
  return 0;
 }
}

零基础学软件之ASP.NET 第五季 ADO.NET

主讲内容: 第一讲 ADO.NET简介 第二讲 使用Connection对象 第三讲 使用Command对象 第四讲 Command操作数据库(2)-添加 Command操作数据库(2)-修改 Command操作数据库(2)-删除 第五讲 Command操作数据库(3)-触发器调用 Command操作数据库(3)-事务处理 等课程
  • 2017年01月19日 10:56

JAVA设计模式之 命令模式【Command Pattern】

一、概述     命令模式可以将请求发送者和接收者完全解耦,发送者与接收者之间没有直接引用关系,发送请求的对象只需要知道如何发送请求,而不必知道如何完成请求。核心在于引入了命令类,通过命令类来降...
  • l416112167
  • l416112167
  • 2014-11-19 15:58:05
  • 1886

设计模式(14)-命令模式

命令模式(Command Pattern):将一个请求封装为一个对象,从而使我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为...
  • panweiwei1994
  • panweiwei1994
  • 2017-07-17 11:38:28
  • 909

业务层框架 —— Command Pattern指南.mht

  • 2009年03月03日 17:43
  • 817KB
  • 下载

设计模式 —— 命令模式(Command Pattern)

命令模式(Command Pattern)概念: 概述:在软件设计中,我们经常会遇到某些对象发送请求,然后某些对象接受请求后执行,但发送请求的对象可能并不知道接受请求的对象是谁,执行的是什么动作。...
  • wwh578867817
  • wwh578867817
  • 2016-05-29 18:34:53
  • 2607

Design Pattern Command 命令设计模式

本设计模式就是利用不同的类包起不同的命令,达到使用什么命令就实现什么操作。 也可以进一步利用map和自己喜欢的命令词对接起来。 一个执行类实际上已经包含了所有需要的操作了,如: class Su...
  • kenden23
  • kenden23
  • 2014-07-27 07:47:10
  • 1128

8.2.2 命令设计模式(The command design pattern)

8.2.2 命令设计模式(The command design pattern)   命令模式(commandpattern)所描述的方法,表示在应用程序中的动作,相对于前一个模式,它常用于参数化...
  • hadstj
  • hadstj
  • 2014-12-02 15:55:12
  • 794

vim中 :s命令

vi/vim中可以使用 :s命令来替换字符串 下面介绍几个简单的用法 :s/helllo/sky/   替换当前行第一个hello为sky :s/helllo/sky/g  替换当前行的所有he...
  • lemontree1945
  • lemontree1945
  • 2018-02-07 09:14:19
  • 38

Design Pattern(Command模式)

描述      COMMAND模式是最简单、最优雅的模式之一。        如图1-1所示,COMMAND模式简单的几乎可笑。该模式仅由一个具有唯一方法的接口组成,这似乎很荒谬?代码1-1 给出...
  • wang15061955806
  • wang15061955806
  • 2014-02-14 20:25:41
  • 367

Unity编辑器拓展【序列化存储与编辑器】

Unity可序列化类型基础类型:int、float、bool、string...值类型对象:Vector、Rect、Color...其他:标识了可序列化的类和结构体以上类型组合:数组、列表...自定义...
  • qiaoquan3
  • qiaoquan3
  • 2018-01-31 20:46:49
  • 36
收藏助手
不良信息举报
您举报文章:Command Pattern
举报原因:
原因补充:

(最多只允许输入30个字)