El patrón Memento permite guardar y restaurar el estado interno de un objeto de forma que se preserve el encapsulamiento. Se utiliza cuando se necesita guardar estados temporales de un objeto para poder restaurarlos más tarde, como en operaciones de deshacer. La clase Memento almacena el estado del objeto Originator de forma que solo este pueda leerlo. La clase Caretaker se encarga de almacenar los objetos Memento sin necesitar conocer su contenido.