Esempio n. 1
0
int main()
{
	//invoker
	Invoker invoker;

	//command receiver--->the real object to execute command
	Light *light = new Light();
	TV *tv = new TV();

	//command
	LightCommand *lightCom = new LightCommand();
	TVCommand *tvCom = new TVCommand();

	lightCom->setReceiver(light);
	tvCom->setReceiver(tv);

	invoker.addCommand(lightCom);
	invoker.addCommand(tvCom);

	invoker.execute();

	invoker.undo();

	return 0;
}
Esempio n. 2
0
int main(int argc, char *argv[])
{
    Data data(10);
    AddCommand add(&data);
    SubCommand sub(&data);
    Invoker invoker;

    cout << "value = " << data.getValue() << endl;
    invoker.invoke(&add);
    cout << "value = " << data.getValue() << endl;
    invoker.invoke(&sub);
    cout << "value = " << data.getValue() << endl;
    invoker.undo();
    cout << "value = " << data.getValue() << endl;
    invoker.undo();
    invoker.undo();
    invoker.undo();
    cout << "value = " << data.getValue() << endl;
    return 0;
}
Esempio n. 3
0
void main()
{
	IReceiver* reciever = new IReceiver(2);
	IncrementCommand* increCmd = new IncrementCommand(reciever);
	DecrementCommand* decreCmd = new DecrementCommand(reciever);
	SquareCommand* squreCmd = new SquareCommand(reciever);
	SqrtCommand* sqrtCmd = new SqrtCommand(reciever);
	Invoker* invoker = new Invoker();
	invoker->addCmd(increCmd);
	invoker->addCmd(decreCmd);
	invoker->addCmd(squreCmd);
	invoker->addCmd(sqrtCmd);
	invoker->notify();
	invoker->undo();
	delete increCmd;
	delete decreCmd;
	delete squreCmd;
	delete sqrtCmd;
	delete invoker;
	delete reciever;
}