command模式

作者: 老练子丶2017 | 来源:发表于2017-11-24 14:32 被阅读0次

不同的命令产生不同的结果,由invoke发放命令

command.h

#ifndef _COMMAND_H

#define _COMMAND_H

#include <iostream>

using namespace std;

class Receiver

{

public:

Receiver() {

}

~Receiver() {

}

void Cmd1() {

cout << "cmd1" << endl;

}

void Cmd2() {

cout << "cmd2" << endl;

}

};

class Command

{

public:

virtual ~Command() {

}

virtual void Excute()=0;

protected:

Command() {

}

};

class ConcreteCommand1 : public Command

{

public:

ConcreteCommand1() {

rece_ = new Receiver;

}

void Excute() {

rece_->Cmd1();

}

private:

Receiver* rece_;

};

class ConcreteCommand2 : public Command

{

public:

ConcreteCommand2() {

rece_ = new Receiver;

}

void Excute() {

rece_->Cmd2();

}

private:

Receiver* rece_;

};

class Invoker

{

public:

Invoker(Command* cmd) : _cmd(cmd) {

}

~Invoker() {

}

void invoke() {

_cmd->Excute();

}

private:

Command* _cmd;

};

#endif // _COMMAND_H

command.cpp

#include "command.h"

int main()

{

Command* cmd = new ConcreteCommand1;

Invoker* invoker1 = new Invoker(cmd);

invoker1->invoke();

return 0;

}

编译:make command

相关文章

  • MAC下sublime text3的列操作

    command + a 全选; command + shift + L 进入列编辑模式

  • Command模式

    命令模式(Command) 命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Tran...

  • COMMAND 模式

    COMMAND 模式 一.概述 命令模式,又称动作模式,目的是将一个请求封装成一个对象,从而使你可用不同的请求对客...

  • command模式

    解决问题 使发令者与执行者之间相分离。 应用场景 比如后台开发过程中的请求数据库、RPC接口等。通常情况下,我们会...

  • command模式

    不同的命令产生不同的结果,由invoke发放命令 command.h #ifndef _COMMAND_H#def...

  • Command模式

    命令模式感觉和之前的备忘录模式有点类似,不过备忘录模式是把程序当时的状态储存起来,而命令模式则是把程序每一步的命令...

  • vi的使用

    进入vi后处于command模式,按下i键进入插入模式编辑文件,在「命令行模式(command mode)」下,按...

  • 敏捷软件开发(原则、模式与实践)第三部分 设计模式-读书笔记1

    第十三章 COMMAND模式和ACTIVE OBJECT模式 COMMAND模式: 该模式仅由一个具有唯一方法的接...

  • 8.命令模式 命令模式即Command模式,此模式通过被称为Command的类封装了对目标对象的调用行为以及调用参...

  • 图解GoF 23种设计模式

    Chain of Responsibility(职责链模式) Command(命令模式) Interpreter(...

网友评论

    本文标题:command模式

    本文链接:https://www.haomeiwen.com/subject/wcffbxtx.html