Patrones de diseño en Python

Memento Pattern in Python

Aprende Memento Pattern in Python con un ejemplo práctico que puedes editar y ejecutar online.

¿Qué es Memento Pattern?

Aprende Memento Pattern in Python con un ejemplo práctico que puedes editar y ejecutar online.

¿Cuándo se utiliza?

  • Resolver problemas recurrentes de diseño de objetos con estructuras probadas.
  • Desacoplar responsabilidades para facilitar la extensión y las pruebas del código.
  • Usar un vocabulario de diseño común al hablar de arquitectura con el equipo.

Código de ejemplo

Ejecutar código →
main.py
from dataclasses import dataclass


@dataclass(frozen=True)
class Snapshot:
    # Memento: store a restorable snapshot without exposing internals.
    text: str


class Editor:
    def __init__(self): self.text = ""
    def save(self): return Snapshot(self.text)

    def restore(self, snapshot):
        # Restore state without exposing representation details.
        self.text = snapshot.text


editor = Editor()
editor.text = "draft"
saved = editor.save()
editor.text = "changed"
editor.restore(saved)
print(editor.text)

Resultado esperado

draft

Cómo funciona

Este ejemplo muestra Memento Pattern in Python. Cambia los valores de entrada para explorar el código.

Cambia los valores y ejecuta el programa en el compilador Python online de CodeUtility sin instalar Python.

Ejercicios prácticos

Modifica las entradas y prueba casos límite antes de usar conjuntos de datos mayores.

  1. Sustituye el dominio del ejemplo conservando la estructura del patrón.
  2. Compara el patrón con una implementación más sencilla y explica las ventajas y desventajas.
  3. Escribe pruebas para cada participante antes de añadir otra implementación.
Ejecutar en el IDE de Python →