Объект-посредник инкапсулирует взаимодействие множества объектов. Компоненты не ссылаются друг на друга, только на медиатор.
class ChatRoom {
public function send(User $from, string $msg): void {
foreach ($this->users as $user) {
if ($user !== $from) $user->receive($from, $msg);
}
}
}Снижает связанность между коллегами. Минус: медиатор может разрастись. Примеры: диалоги в UI, оркестрация сервисов.