Esta es una implementación del patrón de diseño Observer. El cual es un patrón de comportamiento que define una relación de dependencia uno-a-muchos entre objetos, así cuando un objeto cambia de estado, o alguien se suscribe, todos sus dependientes son notificados y actualizados automáticamente.