栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

设计模式-命令模式

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

设计模式-命令模式

在发送者类与接收者类发送消息以及接受消息之间,可能并不能直接进行对话,或者说发送者不关系接收者是谁,而接收者也不需要发送者是谁。这样的一个关系特别像一个老板说,我不关系你怎么做,我只关系这件事的能不能成功。老板只负责发送命令,而并不关系过程,只关心结果。因此,这样的一个运行机制可以通过命令模式进行实现

 

1. Reciver类的编写
class Reciver{
public:
    void action(){
        cout << "reciver接受到了命令";
    }
};
2. Command接口的编写
class Command{
public:
    Command(){};
    virtual void call() = 0;
};

class ConcerteCommand:public Command{
private:
    Reciver* reciver;
public:
    ConcerteCommand(){};
    ConcerteCommand(Reciver* reciver):reciver(reciver){};
    void call(){
        if(!reciver){
            reciver = new Reciver();
        }
        reciver->action();
    }
};
3. Sender类的编写
class Sender{
private:
    Command* command;
public:
    Sender():command(nullptr){};
    Sender(Command* command):command(command){};
    void send(){
        if(!command){
            command = new ConcerteCommand();
        }
        cout << "Sender发送了命令" << endl;
        command->call();
    }
};
4. 主函数测试
int main(){
    Reciver* revier = new Reciver();
    ConcerteCommand* command = new ConcerteCommand(revier);
    Sender* sender = new Sender(command);
    sender->send();
    return 0;
}

5. 参考文献

(1) 设计模式-命令模式 C++实现_MachineChen的博客-CSDN博客_c++命令模式 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/847646.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号