Aller au contenu principal

Game Programming Patterns

Observer

Exemple donné pour la gestion des succès :

  • L'observer = > Classe Achievements qui implémente un observer, avec sa fonctiononNotify qui reçoit tous les événements et les dispatch, par exemple vers une autre fonction unlock(achievement)
  • Le sujet
    • contient la liste des observers
    • expose une API publique qui permet de modifier cette liste (fonctions addObserver et removeObserver), qui permet de contrôler qui reçoit ces notifications.
    • envoie les notifications onNotify en bouclant sur la liste des observers
  • Exemple avec un "Observable physics" : classe Physics qui implémente la classe Subject, qui va ajouter des observers physics.entityFell().addObserver(this)

Sources