Mediator Pattern
This lesson explains the mediator pattern in detail with the aid of a coding example.
We'll cover the following...
What is the mediator pattern?
It is a behavioral pattern that allows a mediator (a central authority) to act as the coordinator between different objects, instead of the objects referring to each other directly. A mediator as the name implies, is a central authority through which various components can communicate. It allows the loose coupling of objects.
A real-life example is a chat application. Here, the chat box acts as the mediator through which various users interact with one another.
Example
Now, let’s implement the mediator pattern for the chat room example discussed above.
class User{constructor(name,userId){this.name = namethis.userId = userIdthis.chatbox = null;}sendMessage(message,sendTo){this.chatbox.send(message,this,sendTo)}receiveMessage(message,receiveFrom){console.log(`${receiveFrom.name} sent the message: ${message}`)}}class ChatBox{constructor(){this.users = []}register(user){this.users[user.userId] = useruser.chatbox = this;}send(message,receiveFrom,sendTo){sendTo.receiveMessage(message, receiveFrom);}}var chatbox = new ChatBox();var joey = new User("Joey",1);var phoebe = new User("Phoebe",2);chatbox.register(joey);chatbox.register(phoebe);joey.sendMessage("Hey, how you doing?",phoebe);phoebe.sendMessage("Smelly Cat, Smelly Cat..",joey);joey.sendMessage("I love this song!", phoebe);
Explanation
The code above implements a chat box. Different users access the chat box to interact with each other. Let’s start by discussing the User
class ...