O padrão observer permite observar o estado de um objecto. Os observadores registam o seu interesse no estado junto do objecto; quando o estado do objecto muda, os observadores são notificados.
O padrão observer tem a seguinte estrutura de classes:
As colaborações entre os intervenientes são as que figuram no seguinte diagrama de sequência: