관리 메뉴

Dev Blog

Mediator Pattern 본문

Development Notes/JS Patterns

Mediator Pattern

Yongjae Kim 2024. 12. 8. 09:37

 

Mediator(중재자, 조정자) 패턴은

component 가 중앙 지점인 중재자를 통해 서로 상호 작용할 수 있도록 합니다.

 

예를 들어,

항공 교통 관제사가 모든 비행기가 다른 비행기에 충돌하지 않고

안전하게 비행하는 데 필요한 정보를 받도록 하는 것과 같은 역할을 합니다.

 

모든 객체가 다른 객체와 직접 통신하여 many to many 관계가 되는 대신,

객체의 요청은 Mediator 가 처리하는데, Mediator 는 이 요청을 처리하여 필요한 곳으로 전달합니다.

 

Before. Mediator 패턴 적용 전.

 

After. Mediator 패턴 적용 후.

 

Chat room 이 예시 중 하나로,

채팅방 내의 사용자들은 서로 직접 대화하지 않고, 대신, Chat room 이 사용자들 사이의 중재자 역할을 합니다.

 

class ChatRoom {
  logMessage(user, message) {
    const time = new Date();
    const sender = user.getName();

    console.log(`${time} [${sender}]: ${message}`);
  }
}

class User {
  constructor(name, chatroom) {
    this.name = name;
    this.chatroom = chatroom;
  }

  getName() {
    return this.name;
  }

  send(message) {
    this.chatroom.logMessage(this, message);
  }
}

 

새 User 객체를 생성하여 send 메소드를 실행하면 아래와 같이 결과값을 확인할 수 있습니다.

 

 

'Development Notes > JS Patterns' 카테고리의 다른 글

Mixin pattern  (0) 2024.12.08
Middleware Pattern  (0) 2024.12.08
Flyweight Pattern  (0) 2024.12.08
Factory Pattern  (0) 2024.12.08
Command Pattern  (0) 2024.11.09
Comments