티스토리 뷰

서로의 입장이 같은 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
링크
«   2024/11   »
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
글 보관함