티스토리 뷰
서로의 입장이 같은 10명이 모여 공동 작업을 하고 있는데, 좀처럼 정리가 되지 않는 상황을 상상해보자.
이 때 입장이 다른 ‘중개인'이 등장하여 개개인의 상황을 보고 받고 상황을 정리해주면 되지 않을까?
회원들은 모두 중개인에게만 보고를 하고, 중개인만이 회원에게 지시를 내릴 수 있게 하면 회원들끼리 옥신각신할 일이 없어진다.
미디에이터는 의지할 수 있는 ‘중개인'을 상상하는 편이 더 이해하기 쉽다.
중개인은 모임의 회원으로부터 올라온 보고를 기초로 대국적인 판단을 해서 각 회원에게 지시를 내린다.
미디에이터 패턴에서 ‘중개인'을 mediator(조정자), ‘각 회원'을 colleague(동료)라고 칭한다.
GoF 책에서 사용하는 용어다.
미디에이터 패턴이 어떤 상황에서 써야하는지 감이 잘 안잡힌다.
다수의 객체 사이를 조정해야 할 경우 미디에이터 패턴을 이용한다.
각각의 객체 상호간에 통신을 하는 것이 아니라, ‘의지가 되는 중개인'을 두고 그 중개인하고만 통신을 한다.
그리고 표시 컨트롤의 로직은 중개인 안에만 기술한다.
다음 링크는 미디에이터 패턴의 예제 코드다.
미디에이터 패턴의 등장인물
Mediator(조정자, 중개자)의 역할 - Mediator
Colleague 역할과 통신을 통해서 조정을 실행하기 위한 인터페이스(API)를 결정한다.
ConcreteMediator(구체적인 조정자, 중개자)의 역할 - LoginFrame
Mediator 역할의 인터페이스(API)를 구현해서 실제의 조정을 실행한다.
Colleague(동료)의 역할 - Colleague
Mediator역할과 통신을 실행할 인터페이스(API)를 결정한다.
ConcreteColleague(구체적인 동료)의 역할 - 버튼, 텍스트 클래스
Colleague 역할의 인터페이스(API)를 구현하는 역할
관련 패턴
- Facade 패턴
- Observer 패턴
'JAVA > 디자인 패턴' 카테고리의 다른 글
메멘토(Memento) 패턴 (0) | 2022.04.03 |
---|---|
옵저버(Observer) 패턴 (0) | 2022.04.02 |
파사드(Facade) 패턴 (0) | 2022.03.31 |
책임 떠넘기기(Chain of Responsibility) 패턴 (0) | 2022.03.30 |
비지터(Visitor) 패턴 (0) | 2022.03.29 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Effective Java
- 테라폼
- 클린 아키텍처
- kotest
- C++
- AWS
- Kotlin
- Java
- Spring Boot
- BAEKJOON
- 코테
- 이펙티브 자바
- 이팩티브 자바
- 정규표현식
- kkoon9
- 백준
- JPA
- BOJ
- node.js
- programmers
- Spring
- 디자인 패턴
- 객체지향
- Olympiad
- 디자인패턴
- 알고리즘
- 프로그래머스
- Algorithm
- 클린 코드
- MSA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함