Modèles de conception - Modèle de médiateur

Le modèle Mediator est utilisé pour réduire la complexité de la communication entre plusieurs objets ou classes. Ce modèle fournit une classe de médiateur qui gère normalement toutes les communications entre les différentes classes et prend en charge une maintenance aisée du code par couplage lâche. Le modèle de médiateur relève de la catégorie de modèle de comportement.

la mise en oeuvre

Nous présentons un modèle de médiateur par exemple d'une salle de discussion où plusieurs utilisateurs peuvent envoyer un message à une salle de discussion et il est de la responsabilité de la salle de discussion de montrer les messages à tous les utilisateurs. Nous avons créé deux classes ChatRoom et User . Les objets utilisateur utiliseront la méthode ChatRoom pour partager leurs messages.

MediatorPatternDemo , notre classe de démonstration, utilisera des objets User pour montrer la communication entre eux.

Étape 1

Créez une classe de médiateur.

ChatRoom.java

import java.util.Date;

public class ChatRoom {
   public static void showMessage(User user, String message){
      System.out.println(new Date().toString() + " [" + user.getName() + "] : " + message);
   }
}

Étape 2

Créer une classe d'utilisateurs

User.java

public class User {
   private String name;

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public User(String name){
      this.name  = name;
   }

   public void sendMessage(String message){
      ChatRoom.showMessage(this,message);
   }
}

Étape 3

Utilisez l' objet Utilisateur pour afficher les communications entre eux.

MediatorPatternDemo.java

public class MediatorPatternDemo {
   public static void main(String[] args) {
      User robert = new User("Robert");
      User john = new User("John");

      robert.sendMessage("Hi! John!");
      john.sendMessage("Hello! Robert!");
   }
}

Étape 4

Vérifiez la sortie.

Thu Jan 31 16:05:46 IST 2013 [Robert] : Hi! John!
Thu Jan 31 16:05:46 IST 2013 [John] : Hello! Robert!