} } public function sendMessage($from, $to, $message) { if (array_key_exists($to, $this->users)) { //Collegueのメソッドは、Mediator側で呼び出す。 $this->users[$to]->receiveMessage($from, $message); } else { printf('<font color="#dd0000">%sさんは入室していないようです</font><hr>', $to); } } } /* * Client */ $chatroom = new Chatroom(); $sasaki = new User('佐々木'); $suzuki = new User('鈴木'); $yoshida = new User('吉田'); $kawamura = new User('川村'); $tajima = new User('田島'); $chatroom->login($sasaki); $chatroom->login($suzuki); $chatroom->login($yoshida); $chatroom->login($kawamura); $chatroom->login($tajima); $sasaki->sendMessage('鈴木', '来週の予定は?'); $suzuki->sendMessage('川村', '秘密です'); $yoshida->sendMessage('萩原', '元気ですか?'); $tajima->sendMessage('佐々木', 'お邪魔してます'); $kawamura->sendMessage('吉田', '私事で恐縮ですが…');