Mediator Pattern

2024. 12. 8. 09:37·Frontend/JS Patterns

 

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 메소드를 실행하면 아래와 같이 결과값을 확인할 수 있습니다.

 

 

'Frontend > 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
'Frontend/JS Patterns' 카테고리의 다른 글
  • Mixin pattern
  • Middleware Pattern
  • Flyweight Pattern
  • Factory Pattern
JTB
JTB
웹/앱 개발 정보를 공유하고 있습니다.
  • JTB
    JTechBlog
    JTB
  • 전체
    오늘
    어제
    • All About Programming;) N
      • Computer Science
        • Terminology and Concepts
        • Network
        • Operating System
        • Database
        • Data Structure
      • Frontend
        • Javascript Essentials
        • Perfomance Optimization
        • JS Patterns
        • Next.js
        • Flutter
      • Backend
        • Node.js
      • DevOps
        • Docker & Kubernetes
      • Coding Test N
        • LeetCode N
        • Programmers
      • Tech Books & Lectures
        • Javascript_Modern JS Deep d..
        • Network_IT 엔지니어를 위한 네트워크 입문
      • Projects
        • PolyLingo_2025
        • Build Your Body_2024
        • JStargram_2021
        • Covid19 Tracker_2021
        • JPortfolio_2021
      • BootCamp_Codestates
        • TIL
        • TILookCloser
        • Pre Tech Blog
        • IM Tech Blog
        • Daily Issues and DeBugging
        • First Project
        • Final Project
        • Sprint Review
        • Good to Know
        • Socrative Review
        • HTML & CSS
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 글쓰기
    • 관리
  • 공지사항

  • 인기 글

  • 태그

    database
    CPU scheduling algorithm
    자바스크립트
    스코프
    testing
    Operating System
    Data Structure
    이벤트
    mobile app
    VoiceJournal
    Threads and Multithreading
    structure of os
    Shared resources
    js pattern
    Network
    자바스크립트 딥다이브
    How memory manage data
    JavaScript
    모던 자바스크립트 Deep Dive
    need a database
    딥다이브
    polylingo
    TCP/IP
    프론트엔드 성능 최적화 가이드
    커리어
    indie hacker
    DOM
    Time complexity and Space complexity
    Binary Tree BFS
    leetcode
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
JTB
Mediator Pattern
상단으로

티스토리툴바