forked from MinePing/Final
-
Notifications
You must be signed in to change notification settings - Fork 0
pattern mediator
qbsb147 edited this page Mar 21, 2026
·
1 revision
- Colleague 객체들 간의 직접적인 통신을 차단하고, 중재자 인터페이스를 통해 상호작용을 정의
- 역할: “누가 누구에게 메시지를 보내야 하는지”를 **중앙에서 조정”
- Mediator를 통해 다른 Colleague와 간접적으로 커뮤니케이션
- 각 Colleague는 Mediator에 이벤트를 전달하거나 알림을 수신
- Mediator 구현체로, 실제 Colleague 객체들을 관리하고 메시지를 중재
- 예: 특정 채팅방에 연결된 모든 사용자에게 메시지 브로드캐스트
- 메시지 전송, 등록/제거 등 모든 상호작용을 중앙 집중식으로 처리
- Colleague 인터페이스를 구현한 실제 객체
- Mediator를 통해 메시지를 주고받음
- 예: 웹소켓 세션 단위의 사용자
sequenceDiagram
participant User1
participant ChatRoom
participant User2
User1->>ChatRoom: send("Hello!")
ChatRoom->>User2: deliver("Hello!")
- 사용자 A가 메시지를 전송
- Mediator(ConcreteMediator)가 메시지를 수신
- Mediator가 해당 방의 다른 사용자(ConcreteColleague)들에게 메시지를 전달
- Colleague는 메시지를 받고 처리
💡 핵심 포인트:
- 사용자 간 직접 통신 없음 → 모든 메시지는 Mediator를 통해 전달
- Mediator가 중앙에서 메시지 흐름과 브로드캐스트를 관리
- 새로운 사용자/채팅방 추가 시에도 Mediator 중심 구조를 유지