Design Patterns - Mediator

design-patterns

Design Patterns - Behavioral - Mediator:

Mediator pattern is used to reduce communication complexity between multiple 
objects or classes. This pattern provides a mediator class which normally 
handles all the communications between different classes and supports easy 
maintenance of the code by loose coupling. Mediator pattern falls under 
behavioral pattern category.

We are demonstrating mediator pattern by example of a chat room where multiple 
users can send message to chat room and it is the responsibility of chat room 
to show the messages to all users. We have created two classes ChatRoom and 
User. User objects will use ChatRoom method to share their messages.

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

// Step 2: Create user class
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);
   }
}

// Step 3: Use the User object to show communications between them.
User robert = new User("Robert");
User john = new User("John");

robert.sendMessage("Hi! John!");
john.sendMessage("Hello! Robert!");
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License