title: Médiateur (patron de conception)
text: # Médiateur (patron de conception)
  
  En génie logiciel, le patron de conception médiateur a pour but d'encapsuler dans un objet, le médiateur, les interactions entre différents objets d'un sous-système. Il est utilisé pour réduire le couplage entre plusieurs classes et permettre ainsi une réutilisation directe de ces classes (sans héritage) indépendamment de leurs interactions.
  
  Lorsqu'un sous système est composé de plusieurs objets, les traitements et les données sont répartis entre tous ces objets. Plus il y a d'objets, plus le problème de communication entre ceux-ci peut devenir complexe. En effet, plus les classes dépendent des méthodes des autres classes plus l'architecture devient complexe. Cela ayant des impacts sur la lisibilité du code et sa maintenabilité dans le temps. L'utilisation d'une classe dans ce contexte nécessite, de plus, un sur-typage qui intègre les interactions spécifiques des objets dans le sous-système. C'est à la fois un facteur de complexité supplémentaire et un frein à la ré-utilisation des classes.
  
  Le modèle de conception médiateur résout ce problème. Pour ce faire, le médiateur est le seul objet communiquant avec les autres objets participants au sous-système. Les objets du sous-système informent le médiateur de leurs changements internes, et seul le médiateur est habilité à actionner ces objets. Il n'y a donc plus d'échange un à un entre les objets du sous-système.
  
  