介绍
- Receive接收者角色
该角色就是干活的角色, 命令传递到这里是应该被执行的。作为抽象类,定义一个可接受消息的抽象类,从而保证多个不同的具体角色均可接受命令 - Command命令角色
需要执行的所有命令都在这里声明。定义抽象类一个和一系列具体命令类,每个类对应一个命令。 - Invoker调用者角色
接收到命令, 并执行命令。
优点:类间解耦、可扩展性 、命令模式结合其他模式会更优秀
缺点: 如果有N个命令, Command的子类就是N个
范例
抽象接收者
#ifndef RECEIVER_H
#define RECEIVER_H
class Receiver {
//抽象接收者, 定义每个接收者都必须完成的业务
public:
virtual ~Receiver() { }
virtual void doSomething() = 0;
};
#endif // RECEIVER_H
具体接收者
#ifndef CONCRETERECIVER_H
#define CONCRETERECIVER_H
#include <QDebug>
#include "receiver.h"
class ConcreteReciver1 : public Receiver{
//每个接收者都必须处理一定的业务逻辑
public:
void doSomething(){
qDebug()<<"Reciver1 doing"