2010-08-10 22 views
17

Duplicar posible:
Design Pattern for Undo Enginemejor patrón de diseño para "deshacer"

En general, ¿cómo lidiar con el apoyo a una función de "deshacer" en su aplicación? He trabajado tanto en aplicaciones web como en aplicaciones de escritorio, y nunca me he sentido realmente cómodo con ningún sistema de "deshacer" que haya creado.

+0

Consulte este [enlace] (http://stackoverflow.com/a/5168936/4629101) para implementar Deshacer/Rehacer. –

Respuesta

19

Creo que debería ser Command patrón de diseño.

Aquí está article sobre multinivel Deshacer/Rehacer con patrón de comando.

EDITAR: Aquí está second sobre multinivel Deshacer/Rehacer con el patrón Memento.

Probablemente se puede hacer con ambos.

+0

gracias @jethro ¡el artículo que vinculó me ayudó mucho! – RHaguiuda

+0

Los últimos 2 enlaces están rotos. ¿Puedes arreglarlo? – hsestupin

6

Votaría a favor del patrón Comando sobre Memento. El patrón Memento sería mucho más costoso que los patrones de Comando para la funcionalidad Deshacer/Rehacer.

Captura y restauración de estado del objeto será un asunto caro bastante en comparación con sólo hacer o deshacer una acción en cualquier objeto compatibles.

Cuestiones relacionadas