Design Patterns Catalog

Simplificando o que não é complicado

Memento

O design pattern Memento define uma estratégia para guardar informações a respeito de um objeto de forma que ele possa ser revertido ao seu estado original em um momento posterior ou, em outras palavras, permite que uma aplicação realize operações que alteram o estado de um objeto e desfaça essas alterações caso seja necessário.

O objeto que precisa ter o seu estado original guardado é o chamado Originator e ele possui um método createMemento capaz de criar e retornar um novo Memento.

O Memento é um objeto que guarda as informações sobre o estado do Originator. E o Originator consegue voltar ao seu estado original através de um método setMemento que recebe um Memento como parâmetro (talvez um nome mais adequado para esse método seja restoreOriginator). O método setMemento como já podemos imaginar restaura o Originator em função das informações contidas no Memento recebido como parâmetro.

Design Pattern Memento - Diagrama de Sequencia

O terceiro objeto presente no pattern é o Caretaker, responsável por gerenciar os Mementos criados além de determinar as situações onde eles devem ser criados ou utilizados para restaurar um Originator.

Páginas Relacionadas: