Command Pattern
来源:互联网 发布:绝对值的算法 初一 编辑:程序博客网 时间:2024/05/20 08:27
动机:把一个请求封装为一个对象,使得不同的请求得到不同的响应;并且对请求进行排队,以及支持UnDo/Redo的操作。
1.Receiver:知道如何执行请求的对象
public class Receiver
{
public void Action()
{
Console.WriteLine("Called Receiver.Action()");
}
}
2.Command:操作执行的接口,包括Receiver的引用;
public abstract class Command
{
public abstract void Execute();
protected Receiver _receiver;
public Command(Receiver receiver)
{
_receiver = receiver;
}
}
3.ConcreteCommand
public class ConcereteCommand : Command
{
public ConcereteCommand(Receiver receiver)
: base(receiver)
{
}
public override void Execute()
{
_receiver.Action();
}
}
4.Invoke, 用户:告诉Comand执行请求;
public class Invoke
{
private Command _command;
public void SetCommand(Command command)
{
_command = command;
}
public void ExecuteCommand()
{
_command.Execute();
}
}
5. 创建命令,设置它的接收者;
public class ClientCommand
{
public void F()
{
Receiver r = new Receiver();
Command command = new ConcereteCommand(r);
Invoke invoke = new Invoke();
invoke.SetCommand(command);
invoke.ExecuteCommand();
}
}
- Command Pattern
- Command Pattern
- Command pattern
- Command Pattern
- command pattern
- command pattern
- Command Pattern
- command pattern
- Command Pattern
- Command Pattern
- Command Pattern
- Command Pattern
- Command Pattern
- Command Pattern
- The sixth pattern------------Command Pattern
- Design Pattern 12-Command
- 命令模式(Command Pattern)
- 命令模式(Command Pattern)
- VisualStudio环境下GSOAP开发指南
- C语言深度解剖【习题续】
- chrome源代码目录结构简介(版本4.1.249.1059)
- php 字符串截取
- iphone 利用本地数据来代替远程UIWebView请求
- Command Pattern
- Flex4 Skinning 2: 皮肤协议
- android开发,模拟器不能输入中文的问题
- 如何解决Get提交乱码问题
- ibm 电话面试
- 工作流(Workflow)和BPM的区别
- 异常详细信息: System.Security.SecurityException: 不允许所请求的注册表访问权
- poj1258
- chrome源码学习之启动流程简介