Thématiques principales

mardi 14 novembre 2017

Design pattern : Observateur


Le pattern Observateur est probablement l'un des plus important. Il s'agit d'un pattern comportemental et structurel.

  • Structurel d'abord car il facilite le découplage entre composants
  • Comportemental ensuite car il permet la conception de système réactif et dynamique facilitant a propagation d'informations au travers d'un système comme dans des IHM par exemple. 
Il est d’ailleurs d’élément central au Pattern MVC et est le fondement a la nouvelle API de Java 9 que sont les Reactives Stream

Dans la version standard, le pattern observateur est constitué d'un couple Sujet/Observateur, les second étant abonné au aux premiers qui vont se charger de les notifier de leur éventuellement évolutions, les observateur auront alors la responsabilité de faire l'action sur le ou les objets dont ils auront la charge.

Ici on peut donc constater de multiple avantage:

  • le découplage d'un delta avec l'action qui pourrait en résulter
  • la capacité a réagir des la modification
  • la possibilité de modifier dynamiquement les comportement sur les changements.


Une variante intéressante est l'adjonction d'un événement lors de la notification qui mettra a jour les observateur permettant a ceux ci de d’exécuter les comportements propagés par les événements.

L'ajout des événements permet d'autant plus de découplage en établissant un référentiel d’événements porteur des comportements et structures de données que les sujets et observateur vont se transmettre.

Ceci va ainsi nous permettre de construire un système logiciel de façon décentralisé et réactif ou chaque éléments/composant disposera de sujets et d'observateurs en interactions par le système de mise a jour.

Aucun commentaire:

Enregistrer un commentaire