设计模式学习笔记-命令模式
2011-09-02 11:31
351 查看
概述:
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
适用场合:
1.抽象出待执行的动作以参数化某对象。
2.在不同的时刻指定、排列和执行请求。
3.支持取消操作。
4.支持修改日志,这样当系统崩溃时,这些修改可以被重做一遍。
5.用构建在原语操作上的高层操作构造一个系统。
类图:
(今天的类图的接口画的规范了,以前的抽空再改过来,呵呵)
代码示例:
1.声明命令接口
2.实现命令操作
3.给命令发出通知,执行请求
4.接受者
5.客户端调用
小结:
命令模式有点晕乎,是为了实现特定的操作而设计的,具体例子,再找找。
将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
适用场合:
1.抽象出待执行的动作以参数化某对象。
2.在不同的时刻指定、排列和执行请求。
3.支持取消操作。
4.支持修改日志,这样当系统崩溃时,这些修改可以被重做一遍。
5.用构建在原语操作上的高层操作构造一个系统。
类图:
(今天的类图的接口画的规范了,以前的抽空再改过来,呵呵)
代码示例:
1.声明命令接口
/// <summary> /// 用来声明执行操作的接口 /// </summary> abstract class Command { protected Receiver receiver; public Command(Receiver receiver) { this.receiver = receiver; } abstract public void Excute(); }
2.实现命令操作
/// <summary> /// 将接受者对象绑定一个动作,调用接受者相应的操作,以实现Excute /// </summary> class ConcreteCommand:Command { public ConcreteCommand(Receiver receiver):base(receiver) { } public override void Excute() { receiver.Action(); } }
3.给命令发出通知,执行请求
/// <summary> /// 要求该命令执行这个请求 /// </summary> class Invoker { private Command command; public void SetCommand(Command command) { this.command = command; } public void ExcuteCommand() { command.Excute(); } }
4.接受者
/// <summary> /// 如何实施和执行一个与请求相关的操作,任何类都可能作为一个接受者. /// </summary> class Receiver { public void Action() { Console.WriteLine("执行请求"); } }
5.客户端调用
/// <summary> /// 测试命令模式 /// </summary> static void TestCommand() { Receiver r = new Receiver(); Command c = new ConcreteCommand(r); Invoker i = new Invoker(); i.SetCommand(c); i.ExcuteCommand(); Console.Read(); }
小结:
命令模式有点晕乎,是为了实现特定的操作而设计的,具体例子,再找找。
相关文章推荐
- 设计模式学习笔记之命令模式
- 【学习笔记javascript设计模式与开发实践(命令模式)----9】
- 设计模式C++学习笔记之十二(Command命令模式)
- Java-马士兵设计模式学习笔记-命令模式
- 设计模式C++学习笔记之十二(Command命令模式)
- 步步为营 .NET 设计模式学习笔记 九、Command(命令模式)
- 设计模式C++学习笔记之十二(Command命令模式)
- 步步为营 .NET 设计模式学习笔记 九、Command(命令模式)
- 设计模式学习笔记——命令模式
- 设计模式学习笔记(十七)——Command命令模式
- 设计模式C++学习笔记之十二(Command命令模式)
- 设计模式C++学习笔记之十二(Command命令模式)
- 【设计模式】学习笔记8:命令模式
- [学习笔记]设计模式[5]-{命令模式}
- 设计模式学习笔记-命令模式
- 设计模式学习笔记——命令(Command)模式
- 步步为营 .NET 设计模式学习笔记 九、Command(命令模式)
- 学习笔记:Java设计模式-命令模式
- java 设计模式学习笔记十二 command命令设计模式
- java学习笔记-设计模式19(命令模式)