Класс 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}`); }
только зарегистрированные пользователи могут получать сообщения из окна чата.