# 中介者模块-JS
# 聊天室
用户相互发送消息,而聊天室(中介)负责转发消息。
// Mediator
class ChatRoom {
    showMessage(user, message) {
        const time = new Date();
        const sender = user.getName();
        console.log(time + '[' + sender + ']:' + message);
    }
}
class User {
    constructor(name, chatMediator) {
        this.name = name;
        this.chatMediator = chatMediator;
    }
    getName() {
        return this.name;
    }
    send(message) {
        this.chatMediator.showMessage(this, message);
    }
}
// client
const mediator = new ChatRoom();
const john = new User('John Doe', mediator);
const jane = new User('Jane Doe', mediator);
john.send('Hi there!');
jane.send('Hey!');
// Output will be
// Thu Aug 06 2020 18:21:48 GMT+0800 (GMT+08:00)[John Doe]:Hi there!
// Thu Aug 06 2020 18:21:48 GMT+0800 (GMT+08:00)[Jane Doe]:Hey!