<大话设计模式学习一>命令模式

来源:互联网 发布:php 获取上传文件大小 编辑:程序博客网 时间:2024/05/17 23:07

   最近重新学习了命令模式,参考的书籍是《大话设计模式》,大部分的设计模式在读研期间就学习过,能够回忆起大体框架,但是具体内容想不出来,项目可能能够用到,就拿来仔细学习一番。

  命令模式,抽象层次,涉及的类有invoker调用者,command命令父类,concretecommand具体的命令类,receiver具体执行命令的类。代码示例:

class Command

{

public:

   Command(Receiver* receiver){  this->receiver = receiver;  }

   virtual void Execute(){}

protected:

   Receiver* receiver;   

}

class Concretecommand:public Command

{

  public:

    Concretecommand(Receiver* receiver):Command(receiver){}

    void Execute(){  receiver.action(); }

}


class Receiver

{

  public:

    void Action(){ cout<<"do something!"; }

}

class Invoker

{

  public:

    void SetCommand(Command* command){  this->command = command; }

    void ExecuteCommand(){  command.Execute(); }

  private:

    Command* command;

}


void main()

{

  Reciever r = new Reciever();

  Command c = new Concretecommand(r);

  Invoker i = new Invoker();

  i.SetCommand(c);

  i.ExecuteCommand();

}



0 0
原创粉丝点击