Introducción
Unos de los patrones de diseño1 que últimamente más utilizo es es el patrón observador2, también conocido como Publish/Subscribe (Publicador / Subscriptor). Este patrón indica que un objetos (subscriptor) pueda observar a otro objeto el publicador, que informa de estados o eventos que pueden interesar a los subscriptores.
El subscriptor, mediante la llamada a un método, se subscribe para ser notificado sobre algún concepto, cuando algo interesante ocurra. Sería algo similar a cuando te suscribes para recibir noticias de algún tipo de un periódico.
La principal ventaja de este patrón es conseguir que los diferentes objetos sean independientes los unos de los otros. Los generadores de los avisos no necesitan saber si hay o no algún objeto interesado ni su número, su única función es avisar que ha ocurrido algo interesante. Los subscriptores tampoco necesitan saber el objeto que genera los avisos, sólo como tiene que subscribirse.