Visitor Pattern in Python
Aprende Visitor Pattern in Python con un ejemplo práctico que puedes editar y ejecutar online.
¿Qué es Visitor Pattern?
Aprende Visitor 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
main.py
class Book:
# Visitor: move new operations outside stable element classes.
def accept(self, visitor): return visitor.visit_book(self)
class Movie:
def accept(self, visitor): return visitor.visit_movie(self)
class PriceVisitor:
def visit_book(self, book): return 10
def visit_movie(self, movie): return 5
# Each element dispatches to the matching visitor method.
visitor = PriceVisitor()
print(sum(item.accept(visitor) for item in [Book(), Movie()]))
Resultado esperado
15
Cómo funciona
Este ejemplo muestra Visitor 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.
- Sustituye el dominio del ejemplo conservando la estructura del patrón.
- Compara el patrón con una implementación más sencilla y explica las ventajas y desventajas.
- Escribe pruebas para cada participante antes de añadir otra implementación.