본문 바로가기

💻 개발IT/Design Patterns

3. Behavior 패턴 - Mediator Pattern

예시

공항 근처를 비행하는 비행기들을 control 해주는 관제탑을 만들어보자.

 

비행기들끼리 직접 커뮤니케이션을 하기는 어려워서, (n^2만큼의 복잡성 발생)

관제탑은 근처 비행기들의 message를 받아 적절한 명령을 한다.

이게 Mediator이다. 

 

인천 공항(ICN Airport)를 날고 있는 주변 비행기들(Cesna, Boeing 747...)은 관제탑(AirController)을 통해 커뮤니케이션 한다.

 

 

Mediator Pattern

서로 communication하는 서로 다른 객체들을 encapsulate하고 control하는 패턴

 

Colleague Class들은 본인들의 상태를 알려주기 위해 getState()를 가지고 있다.

Colleague 들끼리는 직접적인 communication은 없고, (loose coupling)

무조건 Mediator를 통해 메시지를 주고 받아야 한다.

 

  • 장점 : Mediator를 통해 상호작용하기 때문에 커뮤니케이션 flow 이해하기가 쉽다.
  • 단점 : Mediator 로직이 어플에 특화될 수 밖에 없어(어플 종속적) 재사용이 어렵다.

 

 

 

반응형