Mediator × Observer

Dois padrões que costumam ser trocados um pelo outro, e o que de fato os separa.

Em uma frase

Os dois reduzem acoplamento entre componentes. A diferença é onde mora a regra: no Observer cada observador decide sozinho o que fazer; no Mediator a decisão é centralizada em um lugar só.

Critério a critério

  • Onde vive a lógica de reação?

    Mediator
    No mediador, concentrada e legível de uma vez.
    Observer
    Distribuída entre os observadores, cada um por si.
  • Quem conhece quem?

    Mediator
    Os colegas conhecem o mediador explicitamente, e ele conhece todos.
    Observer
    O sujeito não sabe nem quantos observadores existem.
  • Como cresce?

    Mediator
    Risco de virar god object — cada regra nova engorda o centro.
    Observer
    Risco de virar cascata — um evento dispara outro, difícil de rastrear.
  • Serve para quê?

    Mediator
    Coordenar peças com regras de interação entre elas.
    Observer
    Notificar interessados de que algo aconteceu.

Quando escolher cada um

Mediator

Existe regra sobre COMO os componentes reagem juntos — 'trocar o destino limpa a data'.

Ver o conceito completo

Observer

É difusão pura: cada interessado decide sozinho, e o emissor não se importa com o resultado.

Ver o conceito completo

Por que confundem

Na prática eles costumam aparecer juntos — o canal de avisos é Observer, a lógica de reação é Mediator — e isso faz parecer que são o mesmo padrão. A pergunta que separa: se eu adicionar um componente novo, alguém precisa decidir como ele interage com os outros? Se sim, há um mediador ali, mesmo que os avisos cheguem por eventos.