Класс Mediator инкапсулирует и контролирует, как объекты взаимодействуют друг с другом.

Пример: https://codesandbox.io/s/design-pattern-mediator-nmqre0

Класс окна чата представляет собой посредника. Класс отвечает за регистрацию пользователей/участников и обеспечение логики того, как они будут общаться. В нашем случае зарегистрированные и незарегистрированные пользователи могут отправлять и получать сообщения друг от друга. Если мы изменим логику в методе receiveMessage следующим образом:

const isInChat = this.chatbox.users.some(
  (user) => user.userId === recieveFrom.userId
);
if (isInChat) {
  console.log(`${recieveFrom.name} sent the message: ${message}`);
}

только зарегистрированные пользователи могут получать сообщения из окна чата.