The command pattern. This is used by Java's Swing to implement undo/redo. More details here: http://www.javaworld.com/javaworld/jw-06-1998/jw-06-undoredo.html Related to the Command pattern is the Memento pattern: http://sern.ucalgary.ca/courses/SENG/443/W02/assignments/Memento/ --- Idan Sofer <idan / idanso.dyndns.org> wrote: > > I've got a big object that holds references to > other objects which, > > in turn, hold references to other objects, > which..... > > > > Now I change this object, but need a possibility > to revert the change. This > > could be achieved by deep-copying the object, but > that's too expensive > > (changes are mostly minor and 99% copy operations > will be redundant). ________________________________________________________________________ Want to chat instantly with your online friends? Get the FREE Yahoo! Messenger http://uk.messenger.yahoo.com/