Intervienen tres clases: la clase "Originator" (Originador) es una clase que cambia de estado; la clase "Caretaker" (Portero) se encarga de registrar los cambios del Originador; "Memento" (Recuerdo) guarda el objeto a salvaguardar.