Patrones de diseño en Python

Observer Pattern in Python

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

¿Qué es Observer Pattern?

Aprende Observer 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
class Order:
    # Observer: publish changes to an open-ended subscriber list.
    def __init__(self): self.listeners = []
    def subscribe(self, listener): self.listeners.append(listener)

    def set_status(self, status):
        # Broadcast the change to all current observers.
        for listener in self.listeners:
            listener(status)


order = Order()
order.subscribe(lambda status: print(f"Email received: {status}"))
order.set_status("shipped")

Resultado esperado

Email received: shipped

Cómo funciona

Este ejemplo muestra Observer 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 →