Padrões de Projeto (Design Patterns) são soluções
reutilizáveis para problemas recorrentes no design de
software. O padrão de projeto Observer (também chamado
de Event Handler e de Publish–Subscribe) é amplamente
utilizado em sistemas de software orientados a objetos,
permitindo que objetos (observadores) sejam notificados
automaticamente quando o estado de outro objeto (sujeito)
muda. Uma característica essencial desse padrão de projeto
é que ele