美文网首页
Command模式(行为型)

Command模式(行为型)

作者: 潭潭_180 | 来源:发表于2018-09-27 16:08 被阅读0次

Command 模式在实现的实现和思想都很简单,其关键就是将一个请求封装到一个类中(Command), 再提供处理对象(Receiver),最后 Command 命令由 Invoker 激活

实现调用操作的对象(Command)和操作的具体实现者(Recevier)之间的解耦。也可以理解为命令和执行命令的解耦

Command命令模式是一种对象行为型模式,它主要解决的问题是:在软件构建过程中,“行为请求者”与“行为实现者”通常是呈现一种“紧耦合”的问题。如下图所示

结构图

Command Pattern

,另外, 我们可以将请求接收者的处理抽象出来作为参数传给Command 对象, 实际也就是回调的机制(Callback) 来实现这一点,也就是说将处理操作方法地址(在对象内部)通过参数传递给Command 对象, Command 对象在适当的时候(Invoke 激活的时候) 再调用该函数。 这里就要用到C++中的类成员函数指针的概念, 为了方便学习, 这里给出一个简单的实现源代码供参考:

class Reciever

{

public:

Reciever();

~Reciever();

void Action(){

std::cout<<"Reciever action......."<

}

protected:

private:

};

template class SimpleCommand:public Command

{

public:

typedef void (Reciever::* Action)();

SimpleCommand(Reciever* rev,Action act)

{

_rev = rev;

_act = act;

}

virtual void Excute()

{

(_rev->* _act)();

}

~SimpleCommand()

{

delete _rev;

}

protected:

private:

Reciever* _rev;

Action _act;

};

相关文章

网友评论

      本文标题:Command模式(行为型)

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