设计模式17:命令者模式【行为型】
2012-12-19 20:41
295 查看
#include <iostream> #include <list> using namespace std; // class CReceiveTV { public: void OpenTV() { cout<<"open TV."<<endl; } void ChangeTV() { cout<<"change TV."<<endl; } void CloseTV() { cout<<"close TV."<<endl; } }; struct ICommand { public: ICommand(CReceiveTV *pReceiveTV) : m_pReceiveTV(pReceiveTV) { } virtual ~ICommand() { } virtual void ExcuteCommand() = 0; protected: CReceiveTV *m_pReceiveTV; }; class COpenCommand : public ICommand { public: COpenCommand(CReceiveTV *pReceiveTV) : ICommand(pReceiveTV) { } virtual ~COpenCommand() { } virtual void ExcuteCommand() { m_pReceiveTV->OpenTV(); } }; class CChangeCommand : public ICommand { public: CChangeCommand(CReceiveTV *pReceiveTV) : ICommand(pReceiveTV) { } virtual ~CChangeCommand() { } virtual void ExcuteCommand() { m_pReceiveTV->ChangeTV(); } }; class CCloseCommand : public ICommand { public: CCloseCommand(CReceiveTV *pReceiveTV) : ICommand(pReceiveTV) { } virtual ~CCloseCommand() { } virtual void ExcuteCommand() { m_pReceiveTV->CloseTV(); } }; class CInvoker { public: void Invoke(ICommand *pCommand) { pCommand->ExcuteCommand(); } }; // void main() { CReceiveTV receiveTV; ICommand *pCommand = new COpenCommand(&receiveTV); CInvoker invoker; invoker.Invoke(pCommand); delete pCommand; }
相关文章推荐
- 【设计模式】—-(17)中介者模式(行为型)
- JAVA设计模式(17):行为型-模板方法模式(Template Method)
- 设计模式17---设计模式之模板方法模式(Template Method)(行为型)
- 设计模式17——行为型模式之迭代器模式
- JAVA设计模式(17):行为型-模板方法模式(Template Method)
- 设计模式学习之迭代器模式(Iterator,行为型模式)(17)
- 设计模式17——行为型模式之迭代器模式
- 设计模式笔记(17)---中介者模式(行为型)
- [导入]C#面向对象设计模式纵横谈(17):(行为型模式) Mediator 中介者模式.zip(8.75 MB)
- 设计模式笔记(17)---中介者模式(行为型)
- 设计模式笔记(17)---中介者模式(行为型)
- 设计模式(17)-行为型模式-Moderator模式
- 设计模式笔记(17)---中介者模式(行为型)
- 设计模式17:Iterator 迭代器模式(行为型模式)
- 设计模式(17)-行为型-中介者模式(Mediator)
- 23种设计模式(17)_行为型_中介者模式(Mediator Pattern)
- 23种设计模式(17)-命令模式
- 设计模式(十二)职责链模式(Chain of Responsibility)(对象行为型)
- 设计模式之行为型模式一
- 设计模式 ( 十七) 状态模式State(对象行为型)