O padrão Memento permite armazenar e recuperar estados anteriores de um objeto, de forma que seja possível retorná-lo a estados passados. O objeto cujo estado é armazenado é chamado de Memento, enquanto o objeto responsável por criá-lo e recuperá-lo é chamado de Originador. Um Caretaker armazena versões anteriores do Memento.
1. Memento é um padrão de projeto que permite armazenar o estado interno de um
objeto em um determinado momento, para que seja possível retorná-lo
a este estado, caso necessário
2. INTENÇÃO
Uma maneira de armazenar estados anteriores de
um objeto com facilidade.
Memento: O objeto básico que está armazenado
em estados diferentes. é o objeto cujo estado
se adapte.
Originador: define e obtém valores do Memento
atualmente segmentado. Cria novos Mementos e
atribui valores atuais a eles. responsável por
armazenar o estado interno do objeto Originador.
Caretaker: contém uma ArrayList que contém
todas as versões anteriores da lembrança. Ele pode
armazenar e recuperar Mementos armazenados.
3. PROBLEMA
O Padrão Comportamental Memento possui uma
grande gama de aplicações onde é necessário a
recuperação de um estado anterior de um objeto
como um todo, qualquer tipo de editor precisa
oferecer uma maneira de desfazer ações como
restaurar imagens, textos etc. Para isso, o padrão
Memento procura recuperar o estado anterior
dessas ações e copiar os mesmos para um objeto a
ser restaurado.
5. CASOS CONHECIDOS
java.util.Date (the setter methods do that, Date is internally represented by a long value)
•All implementations of java.io.Serializable
•All implementations of javax.faces.component.StateHolder
10. SOLUÇÃO
Reduzir consumo de memória.
Reduzir custo em tempo de execução.
Usado quando você precisa criar uma
grande quantidade de objetos
semelhantes.
Para reduzir o uso de memória, você
compartilha objetos que são semelhantes
de alguma forma, em vez de criar
novos.