设计模式一日一练:命令模式(Command)
2014-05-06 23:35
357 查看
Command模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。
PS. 腾讯引擎技术中心的一位技术牛人写过一篇用命令模式封装多线程调用的blog,命令模式的典型应用场景。
PS. 我的设计模式系列blog,《设计模式》专栏,通过简单的示例演示设计模式,对于初学者很容易理解入门。深入学习请看GoF的《设计模式》。
// command class Command { public: virtual void Execute(); }; // command class Receiver; class ConcreteCommand: public Command { public: public ConcreteCommand(Receiver* receiver); virtual void Execute(); private: Receiver* receiver; }; ConcreteCommand::ConcreteCommand(Receiver* receiver) { this->receiver = receiver; } void ConcreteCommand::Execute() { this->receiver->Action(); } // receiver class Receiver { public: void Action(); } // class Invoker { public: void SetCommand(Command* cmd); void ExecuteCommand(); private: Command* command; } void Invoker::SetCommand(Command* cmd) { this->command = cmd; } void Invoker::ExecuteCommand() { this-command->Execute(); } // test void Test() { Receiver* receiver = new Receiver(); Command* command = new ConcreteCommand(receiver); Invoker* invoker = new Invoker(); invoker->SetCommand(command); invoker->ExecuteCommand(); // todo ... destroy }
PS. 腾讯引擎技术中心的一位技术牛人写过一篇用命令模式封装多线程调用的blog,命令模式的典型应用场景。
PS. 我的设计模式系列blog,《设计模式》专栏,通过简单的示例演示设计模式,对于初学者很容易理解入门。深入学习请看GoF的《设计模式》。
相关文章推荐
- .NET设计模式(17):命令模式(Command Pattern)
- [导入]C#面向对象设计模式纵横谈(15):(行为型模式) Command 命令模式.zip(7.56 MB)
- 设计模式-命令模式(command pattern)
- 设计模式 – 命令模式(Command)
- 【设计模式 - 14】之命令模式(Command)
- 设计模式 之 命令(command)模式
- 设计模式之命令模式(Command)
- 设计模式学习笔记(十七)——Command命令模式
- 设计模式之命令模式(Command)
- 设计模式15:Command Pattern (命令模式)
- 设计模式 Design Parttern ——命令模式Command
- JAVA设计模式之 命令模式【Command Pattern】
- 设计模式--命令模式Command
- 设计模式学习笔记——命令(Command)模式
- 设计模式之:命令模式(Command Pattern)
- 设计模式学习笔记(十七)——Command命令模式
- 设计模式——命令模式(Command)
- Java设计模式八:命令模式(Command)
- 设计模式-行为设计模式:命令模式 Command