Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Design Patterns
Code

Patrons de conception: Observateur

by
Difficulty:IntermediateLength:ShortLanguages:
This post is part of a series called Design Patterns in PHP.
Design Patterns: The Command Pattern
Design Patterns: The Factory Method Pattern

French (Français) translation by Thomas Triboult (you can also view the original English article)

Cet article traitera d'un patron comportemental, le patron Observateur. Un observateur est une personne qui regarde votre activité, il se peut que l'observateur effectue certaines actions en fonction de ce que vous faites.

Ce concept est applicable au patron de conception. Il faut implémenter ce patron lorsque qu'il y a une dépendance un-vers-un entre nos objets et qu'un objet a besoin d'être modifié/avertit lorsqu'un autre objet a changé.

Wikipedia donne la définition suivante :

Le patron de conception observateur/observable est utilisé en programmation pour envoyer un signal à desmodules qui jouent le rôle d'observateur. En cas de notification, les observateurs effectuent alors l'action adéquate en fonction des informations qui parviennent depuis les modules qu'ils observent (les « observables »). Ce patron est généralement utilisé pour représenter des systèmes de gestion d'événements distribués. Le patron Observateur est aussi une partie principale du patron modèle-vue-contrôleur (MVC).

Pour donner plus de détails sur ce patron, j'ai pris l'exemple d'un convertisseur de devises par rapport au dollar américain. Nous partons du principe que le convertisseur affiche et met à jour le prix à intervalles réguliers.

Avant de commencer définissons les responsabilités de la classe principale du convertisseur (qui agira comme l'observateur dans cet exemple).

  1. Cet observateur doit pouvoir ajouter une nouvelle monnaie pour que l'utilisateur puisse ajouter autant de monnaies qu'il le souhaite.
  2. Cet observateur doit garder une référence vers toutes les monnaies ajoutées.
  3. Cet observateur doit afficher le statut et la valeur de chaque monnaie.

Dans la section suivante nous allons implémenter notre observateur :

Si vous regardez le code ci-dessus, vous verrez qu'il est possible d'effectuer toutes les actions décrites dans la section précédente.

Maintenant notre observateur est prêt. Ce qu'il nous faut maintenant ce sont de nouvelles monnaies que nous pourrons ajouter à cet observateur et nous aurons terminé. Implémentons nos classes de monnaies.

Nous avons tout ce qu'il faut pour faire fonctionner notre observateur.

Assembler nos éléments

Le code ci-dessus affichera :

Vous pouvez constater que nous avons mis à jour le prix de toutes les monnaies et qu'elles ont été affichées dans notre convertisseur. Maintenant nous allons permettre l'ajout de nouvelles monnaies avec une petite modification.

Cette modification consiste uniquement à garder en mémoire les monnaies dans le convertisseur. Ainsi, le code du client n'est pas modifié même s'il appelle la méthode de mise à jour du prix du convertisseur.

Ajouter une nouvelle monnaie

Classe de la monnaie

C'est assez simple d'ajouter une nouvelle monnaie : La seule chose qu'il reste à faire est d'ajouter cette nouvelle monnaie dans notre observateur.

Conclusion

L'état de chaque objet est très important dans la Programmation Orientée Objet, car tout est basé sur l'interaction entre les objets. Il existe souvent des cas où certains objets ont besoin d'être informés du changement d'autres objets. Le patron de conception Observateur peut être utilisé quand les modifications d'un sujet ont besoin d'être observées par un ou plusieurs observateurs.

N'oubliez pas de nous laisser un commentaire ci-dessous.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.