Sommaire

Le pattern Observateur Observateur

Cette problématique étant récurrente, le "gang des quatre" propose un design pattern pour la résoudre.

Comme nous allons le voir, cette solution qui a fait ses preuves peut être utilisée directement en C#. Néanmoins, il existe un système très performant basé sur l’utilisation de types spécifiques que sont les delegate et les event qui sont très largement utilisés pour gérer les communications entre objets en C#.

Mais revenons au pattern Observateur, qui propose une solution de codage d’une relation de un (observé) à plusieurs (observateurs) en utilisant le couplage le plus faible possible. Voici la représentation UML de ce type de liaison.

IMAGES/07RI12.png

La classe Observable et l’interface IObservateur ont été conçues en même temps, lors du développement d’un objet pouvant communiquer ses changements d’état.

La communication entre un objet Observable, qui a pu être développé bien plus tard, et un objet Observateur est cependant possible grâce au polymorphisme de l’objet Observateur qui implémente l’interface IObservateur.

En effet, la classe Observable ne reconnaît que des objets implémentant l’interface IObservateur. Regardez dans le diagramme UML les méthodes de gestion des abonnés : toutes attendent un objet de type IObservateur. Donc, dès qu’une classe implémente ...