O padrão de observador é um padrão de projeto de software no qual um objeto, denominado assunto, mantém uma lista de seus dependentes, chamados observadores, e os notifica automaticamente sobre quaisquer mudanças de estado, geralmente chamando um de seus métodos.
- O sujeito mantém uma lista de todos os observadores.
- O sujeito pode inscrever/cancelar a inscrição de observadores em tempo de execução.
- O assunto notifica todos os observadores quando seu estado muda ou algum evento ocorre
- O sujeito e os observadores estão fracamente acoplados porque não têm conhecimento explícito um do outro. Novos observadores podem ser implementados e usados sem modificar a implementação do assunto .