diff --git a/memento/src/main/java/com/iluwatar/memento/App.java b/memento/src/main/java/com/iluwatar/memento/App.java index 623ffb00e..71d0ed466 100644 --- a/memento/src/main/java/com/iluwatar/memento/App.java +++ b/memento/src/main/java/com/iluwatar/memento/App.java @@ -4,7 +4,20 @@ import java.util.Stack; /** * - * Memento pattern is for storing and restoring object state. The object ({@link Star}) + * The Memento pattern is a software design pattern that provides the ability to restore + * an object to its previous state (undo via rollback). + *
+ * The Memento pattern is implemented with three objects: the originator, a caretaker and + * a memento. The originator is some object that has an internal state. The caretaker is + * going to do something to the originator, but wants to be able to undo the change. The + * caretaker first asks the originator for a memento object. Then it does whatever operation + * (or sequence of operations) it was going to do. To roll back to the state before the + * operations, it returns the memento object to the originator. The memento object itself + * is an opaque object (one which the caretaker cannot, or should not, change). When using + * this pattern, care should be taken if the originator may change other objects or + * resources - the memento pattern operates on a single object. + *
+ * In this example the object ({@link Star}) * gives out a "memento" ({@link StarMemento}) that contains the state of the object. * Later on the memento can be set back to the object restoring the state. *