Le design pattern Observer avec la spl library

Rappelez-vous, dans l’article précédent, j’ai présenté le design pattern Observer, mais avec une implémentation propre. En voici l’implémentation avec la Bibliothèque standard Spl.

Les changements

403892

  • Suppression de l’interface Observer (remplacée par l’interface SplObserver)
  • La classe abstraite Observable implémente l’interface SplSubject
  • Les fonctions de la classe abstraite Observables changent de nom: addObservers devient attach, notifyObserver devient notify

Mis à part cela… eh bien, vous allez le voir, rien ne change!

1) Créons la classe abstraite Observable (le sujet)

2) La classe concrète Observable: Données Meteo

3) Les observers: AffichageConditions, AffichagePrevisions, AffichageStats

4) Le contrôleur, qui réunit tout le monde

Pas énormément de changements, mais nous avons tout de même une interface de moins, ce qui est toujours appréciable.

Alors, au final, pourquoi utiliser l’une plutôt que l’autre? Je dirais que ça dépend si vous voulez rajouter des fonctions obligatoires dans votre interface ou si le comportement standard vous convient.

Comme d’habitude, le dépôt github: https://github.com/jpsymfony/dp-observer.git.

Le répertoire correspondant est SplObserverBundle.

Rédigé par

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *