Para que serve a classe "Memento" no padrão de design do Memento?


8

No padrão de design "Memento" do Gang of Four , a Mementoclasse parece um invólucro inútil que na verdade não fornece nenhum valor para mim.

Para que serve? Existe alguma razão para você não poder simplesmente passar o Stringobjeto (no exemplo da Wikipedia)?

Respostas:


11

A classe memento é aquela que contém os diferentes estados com os quais você está lidando no seu objeto - é o que habilita a funcionalidade "desfazer / refazer".

O exemplo ao qual você se vinculou na Wikipedia é bastante simplista, onde o "estado" é apenas um valor de string. Considere que o estado pode ser um monte de propriedades que você pode restaurar em "lote" e talvez tenha vários pontos "desfazer".


4
Observe também que o uso .clone()desse exemplo da wikipedia é uma prática extremamente ruim. Nunca funcionará como você deseja, especialmente nesse padrão. Quem escreveu esse exemplo precisa que o teclado seja retirado.

O objeto de lembrança no padrão de lembrança 'vanilla' é usado puramente para ativar "desfazer". O exemplo wikipedia (que realmente não é tão ruim IMO) parece suportar isso ...
vaughandroid
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.