¿Para qué es la clase "Memento" en el patrón de diseño Memento?


8

En el patrón de diseño "Memento" de Gang of Four , la Mementoclase parece un envoltorio inútil que en realidad no me proporciona ningún valor.

¿Para qué sirve? ¿Hay alguna razón por la que no puedas pasar el Stringobjeto (en el ejemplo de Wikipedia)?

Respuestas:


11

La clase de recuerdo es la que contiene los diferentes estados con los que está tratando en su objeto; es lo que habilita la funcionalidad "deshacer / rehacer".

El ejemplo al que se ha vinculado en Wikipedia es bastante simplista, donde el "estado" es solo un valor de cadena. Tenga en cuenta que el estado podría ser un conjunto de propiedades que es posible que desee restaurar en "lote" y tal vez tenga varios puntos de "deshacer".


44
También tenga en cuenta que el uso de .clone()en ese ejemplo de Wikipedia es una práctica extremadamente mala. Nunca funcionará como lo desea, especialmente en este patrón. Quien escribió ese ejemplo necesita que les quiten el teclado.

El objeto de recuerdo en el patrón de recuerdo 'vainilla' se usa exclusivamente para habilitar "deshacer". El ejemplo de wikipedia (que realmente no es tan malo IMO) parece confirmar esto ...
vaughandroid
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.