<aside>
đ
Mettre en place un mĂ©canisme de souscription pour envoyer des notifications Ă plusieurs objets, au sujet dâĂ©vĂ©nements concernant les objets quâils observent.
</aside>

đProblĂšme
Imaginez que vous avez deux types dâobjets : un Client
et un Magasin
.
<aside>
đŻ
Soit les clients perdent leur temps à venir vérifier la disponibilité des produits, soit le magasin gùche des ressources pour prévenir des clients qui ne sont pas concernés.
</aside>

Se rendre au magasin ou envoyer du spam.
đSolution
<aside>
â
Ajouter un mĂ©canisme de souscription Ă la classe diffuseur pour permettre aux objets individuels de sâinscrire ou se dĂ©sinscrire de ce diffuseur.
</aside>

Un mĂ©canisme de souscription qui permet aux objets individuels de sâinscrire aux notifications des Ă©vĂ©nements.

Le diffuseur envoie des notifications aux souscripteurs en appelant la méthode de notification spécifique sur leurs objets.
Structure

- Le Diffuseur envoie des Ă©vĂ©nements intĂ©ressants Ă dâautres objets. Ces Ă©vĂ©nements se produisent quand le diffuseur change dâĂ©tat ou exĂ©cute certains comportements. Le diffuseur possĂšde une infrastructure dâinscription qui permet aux nouveaux souscripteurs de rejoindre la liste et aux souscripteurs actuels de la quitter.
- Quand un nouvel Ă©vĂ©nement survient, le diffuseur parcourt la liste dâinscriptions et appelle la mĂ©thode de notification dĂ©clarĂ©e dans lâinterface des souscripteurs sur chaque objet souscripteur.
- Lâinterface Souscripteur dĂ©clare les mĂ©thodes de notification. Dans la majoritĂ© des cas, il nây a quâune seule mĂ©thode
update
. Elle peut prendre plusieurs paramÚtres pour que le diffuseur leur envoie plus de détails concernant la modification.
- Les Souscripteurs Concrets exĂ©cutent certaines actions en rĂ©ponse aux notifications envoyĂ©es par le diffuseur. Toutes ces classes doivent implĂ©menter la mĂȘme interface pour ne pas coupler le diffuseur avec leurs classes concrĂštes.
- En gĂ©nĂ©ral, les souscripteurs ont besoin de dĂ©tails Ă propos du contexte afin dâexĂ©cuter correctement la mise Ă jour. Câest pour cela que les diffuseurs passent souvent des donnĂ©es du contexte en paramĂštre de la mĂ©thode de notification. Le diffuseur peut mĂȘme sâenvoyer lui-mĂȘme en paramĂštre et laisser les souscripteurs rĂ©cupĂ©rer directement les donnĂ©es nĂ©cessaires.
- Le Client crée des objets diffuseur et Souscripteur séparément et inscrit les souscripteurs aux mises à jour du diffuseur.