123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- #include <iostream>
- using namespace std;
- class Reciever {
- public:
- void Action() {
- cout << "Reciever::Action..." << endl;
- }
- };
- class Command {
- public:
- virtual ~Command() { }
- virtual void Excute() = 0;
- };
- class ConcreteCommand :public Command {
- public:
- ConcreteCommand(Reciever *rev) {
- _rev = rev;
- }
- void Excute() {
- _rev->Action();
- }
- private:
- Reciever *_rev;
- };
- class Invoker {
- public:
- Invoker(Command* cmd) {
- _cmd = cmd;
- }
- void Invoke() {
- _cmd->Excute();
- }
- private:
- Command *_cmd;
- };
- int main() {
- Reciever *rev = new Reciever();
- Command* cmd = new ConcreteCommand(rev);
- Invoker *inv = new Invoker(cmd);
- inv->Invoke();
- delete rev;
- delete cmd;
- delete inv;
- return 0;
- }
|