Vous êtes sur la page 1sur 11

Design Pattern

Diffrents objets ont des interactions. Un vnement sur l'un provoque une action ou des actions sur un autre ou d'autres objets.

Le Mediator agit comme relais de communication entre deux classes qui ne se connaissent pas.

Colleague : dfinit l'interface d'un collgue. Il s'agit d'une famille d'objets qui s'ignorent entre eux mais qui doivent se transmettre des informations.
//Dfinit l'interface d'un collgue. public abstract class Colleague { protected Mediateur mediateur; //Constructeur permettant de fixer le mdiateur public Colleague(Mediateur pMediateur) { mediateur = pMediateur; } public abstract void recevoirMessage(String pMessage); }

ConcreteColleagueA et ConcreteColleagueB : sont des sous-classes concrtes de l'interface Colleague. Elles ont une rfrence sur un objet Mediator auquel elles transmettront les informations.
// Sous-classe concrte de "Collegue" public class ConcreteColleagueA extends Colleague { public ConcreteColleagueA(Mediateur pMediateur) { super(pMediateur); pMediateur.setColleagueA(this); } // Mthode demandant de transmettre un message provenant de cette classe public void envoyerMessageFromA(String pMessage) { mediateur.transmettreMessageFromA(pMessage); } // Mthode recevant un message public void recevoirMessage(String pMessage) { System.out.println("ConcreteCollaegueA a reu : " + pMessage); }

Mediator : dfinit l'interface de communication entre les objets Colleague. //Dfinit l'interface d'un mdiateur. //Ralise la transmission de l'information. public interface Mediateur { // Mthodes permettant les collgues public void setColleagueA(ConcreteColleagueA pColleagueA); public void setColleagueB(ConcreteColleagueB pColleagueB); // Mthodes permettant de transmettre des messages public void transmettreMessageFromA(String pMessage); public void transmettreMessageFromB(String pMessage); }

ConcreteMediator : implmente la communication et maintient une rfrence sur les objets Colleague.
//Sous-classe concrte de Mediateur public class ConcreteMediateur implements Mediateur { private ConcreteColleagueA colleagueA; private ConcreteColleagueB colleagueB; // Mthodes permettant les collgues public void setColleagueA(ConcreteColleagueA pColleagueA) { colleagueA = pColleagueA; } public void setColleagueB(ConcreteColleagueB pColleagueB) { colleagueB = pColleagueB; } //Si le message provient de A, on le transmet B public void transmettreMessageFromA(String pMessage) { colleagueB.recevoirMessage(pMessage); //Si le message provient de B, on le transmet A public void transmettreMessageFromB(String pMessage) { colleagueA.recevoirMessage(pMessage); } }

Le systme est facile comprendre.

Le Mediator favorise la relation un-plusieurs.

Le MFC de Microsoft.

Les divers programmes de chat.

ATTENTION

Vous aimerez peut-être aussi