중재자 패턴

객체들이 중재자에게 의존하게 함으로써, 객체간 결합도를 낮추고 유지보수성을 향상시키는 패턴

  • 같은 타입의 여러 객체들이 서로 상호작용하며 직접적으로 연결되어 있다면, 복잡한 의존관계가 맺어지게됨

  • 한 객체가 다수 객체를 기억해야 하고, 특정 객체가 변경되면 다른 객체들에게도 영향을 끼치게됨

  • 이들 사이에 중재자를 두어서 이를 중심으로 소통이 이뤄지도록 함

  • 중재자는 여러 객체들간의 상호작용을 제어하여 단순화하고 코드의 확장성을 높여줌


1. 중재자 구현체

interface ChatMediator {
  sendMessage(message: string, user: User): void
  addUser(user: User): void
}

class ChatMediatorImpl implements ChatMediator {
  private users: User[] = []
  
  addUser(user: User) {
    this.users.push(user)
  }
  
  sendMessage(message: string, user: User) {
    for(const u of this.users) {
      if (u !== user) {
        u.recive(message)
      }
    }
  }
}

2. 사용자 코드

3. 클라이언트 코드

Last updated