views:

119

answers:

3

Possible Duplicate:
Design Pattern for Undo Engine

In general, how do you deal with supporting an "undo" feature in your application? I have worked on web apps and desktop apps alike, and I have never really felt comfortable with any "undo" system I've made.

+2  A: 

I believe it should be Command design pattern.

Here is article about multilevel Undo/Redo with Command pattern.

EDIT: Here is second about multilevel Undo/Redo with Memento pattern.

So probably it can be done with both.

jethro
+1  A: 

Check out the Memento Pattern

Dave McClelland
+1  A: 

I'd vote in favor of Command pattern over Memento. Memento pattern would be much costlier then Command patterns for Undo/Redo functionality.

Capturing and Restoring object state will be quite an expensive affair compared to just doing or undoing an action on any compatible object.

this. __curious_geek