중재자 패턴(Mediator Pattern)은 객체들 간의 복잡한 상호작용을 캡슐화하여, 객체들이 서로 직접 통신하지 않고 '중재자'를 통해서만 통신하도록 만드는 행위 패턴입니다.
공항의 비행기들을 생각해봅시다. 수많은 비행기들이 서로의 위치를 공유하며 직접 소통하면 통신망이 거미줄처럼 엉켜 대형 사고가 납니다. 대신 '관제탑(Mediator)' 하나를 두고, 비행기들은 오직 관제탑과만 통신합니다. 채팅방, 스마트홈 허브 등 M:N의 복잡한 관계를 1:N으로 단순화할 때 필수적인 패턴입니다.
📐 Mediator Pattern UML
중재자 패턴은 객체 간의 혼란스러운 의존 관계들을 줄여줍니다. 객체들이 직접 서로 통신하는 것을 제한하고, 중재자 객체를 통해서만 협력하도록 합니다.
class ChatRoom {
static showMessage(user, message) {
console.log(`[${new Date().toLocaleTimeString()}] ${user.name}: ${message}`);
}
}
class User {
constructor(name) { this.name = name; }
sendMessage(message) { ChatRoom.showMessage(this, message); }
}
const john = new User("John");
const jane = new User("Jane");
john.sendMessage("Hi Jane!");
jane.sendMessage("Hello John!");