티스토리 뷰
서로의 입장이 같은 10명이 모여 공동 작업을 하고 있는데, 좀처럼 정리가 되지 않는 상황을 상상해보자.
이 때 입장이 다른 ‘중개인'이 등장하여 개개인의 상황을 보고 받고 상황을 정리해주면 되지 않을까?
회원들은 모두 중개인에게만 보고를 하고, 중개인만이 회원에게 지시를 내릴 수 있게 하면 회원들끼리 옥신각신할 일이 없어진다.
미디에이터는 의지할 수 있는 ‘중개인'을 상상하는 편이 더 이해하기 쉽다.
중개인은 모임의 회원으로부터 올라온 보고를 기초로 대국적인 판단을 해서 각 회원에게 지시를 내린다.
미디에이터 패턴에서 ‘중개인'을 mediator(조정자), ‘각 회원'을 colleague(동료)라고 칭한다.
GoF 책에서 사용하는 용어다.
미디에이터 패턴이 어떤 상황에서 써야하는지 감이 잘 안잡힌다.
다수의 객체 사이를 조정해야 할 경우 미디에이터 패턴을 이용한다.
각각의 객체 상호간에 통신을 하는 것이 아니라, ‘의지가 되는 중개인'을 두고 그 중개인하고만 통신을 한다.
그리고 표시 컨트롤의 로직은 중개인 안에만 기술한다.
다음 링크는 미디에이터 패턴의 예제 코드다.
GitHub - kkoon9/Java-Design-Pattern: Java 언어로 배우는 디자인 패턴 입문 예제 코드
Java 언어로 배우는 디자인 패턴 입문 예제 코드. Contribute to kkoon9/Java-Design-Pattern development by creating an account on GitHub.
github.com
미디에이터 패턴의 등장인물
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
- 클린 코드
- Effective Java
- Java
- programmers
- 디자인 패턴
- 정규표현식
- 이팩티브 자바
- node.js
- Spring Boot
- BOJ
- Algorithm
- Spring
- JPA
- kotest
- Kotlin
- C++
- 객체지향
- 이펙티브 자바
- kkoon9
- AWS
- BAEKJOON
- MSA
- Olympiad
- 알고리즘
- 프로그래머스
- 테라폼
- 클린 아키텍처
- 백준
- 코테
- 디자인패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |