zoukankan      html  css  js  c++  java
  • [设计模式]<7>. C++与命令模式(command pattern)

    默默地EEer,原文地址:

     http://www.cnblogs.com/hebaichuanyeah/p/5713031.html

    意图
    将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。

    一个栗子

    #include <iostream>
    
    using namespace std;
    
    class Receiver
    {
    public :
        void doSomeThing()
        {
            cout<<"执行命令"<<endl;
        }
    };
    
    class Command
    {
    public:
        virtual ~Command(){}
        virtual void execute()
        {
    
    
        }
    
    };
    
    class ADemoCommand:public Command
    {
    private:
        Receiver * receiver;
    public:
        ADemoCommand(Receiver * r)
        {
            receiver = r;
    
        }
        virtual void execute()
        {
            receiver->doSomeThing();
        }
    
    };
    
    class Invoker
    {
    private:
        Command * command;
    public:
        Invoker(Command *c)
        {
            command=c;
        }
        void sendCommand()
        {
            command->execute();
        }
    };
    main()
    {
        Receiver * receiver = new Receiver();
        Command * command = new ADemoCommand(receiver);
        Invoker * invoker = new Invoker(command);
        invoker->sendCommand();
        delete receiver;
        delete command;
        delete invoker;
    }
  • 相关阅读:
    操作集锦
    大吉大利(算贡献)
    96. 奇怪的汉诺塔
    P760通天之汉诺塔
    First Last Sorting
    9.12小结
    day_06
    day_05作业
    day_05
    day_04
  • 原文地址:https://www.cnblogs.com/hebaichuanyeah/p/5713031.html
Copyright © 2011-2022 走看看