El patrón Observer permite que varios objetos reaccionen a cambios de otro objeto.

En C#, los eventos son una forma natural de implementarlo.

Ejemplo

PlayerHealth
   ↓
OnHealthChanged
   ↓
HUD
Audio
VFX

Código

public event Action<int> OnHealthChanged;

Suscriptor

health.OnHealthChanged += ActualizarBarra;

Desuscribir

health.OnHealthChanged -= ActualizarBarra;

Importante

Desuscribirse correctamente evita referencias innecesarias y errores.

Resumen rápido

Subject
→ evento
→ Observers