Esempio n. 1
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;
}