중재자 패턴이란?

클래스간 복잡한 로직을 캡슐화 하여 하나의 클래스에 위임하여 처리하는 패턴

M:N의 관계에서 M:1의 관계로 복잡도를 떨어뜨려 유지 보수 및 재사용의 확장성에 유리한 패턴

구조

structure.png

  • Mediator
    Colleague 역할과 통신하여 조정을 실행하는 API
    • ConcreteMediator
      Mediator 구현체
  • Colleague
    Mediator 역할과 통신을 실행할 API
    • ConcreateColleague
      Colleague 구현체

언제 사용할까?

복잡하게 얽힌 객체와 객체간에 관계를 풀어 줄때 주로 사용하게 된다.

프로그램을 작성하다 보면 상호작용을 해야하는 경우 객체들 간의 결합도가 증가하고 유연성이 떨어지는 경우가 발생하게 된다.

이런 경우에

이제 특정 개체가 명령을 내릴 필요가 있으면 중재자 개체에게 전달하기만 하면 되고,

중재자는 해당 명령을 자신이 알고 있는 개체들 중에 적절한 개체에게 전달만 하면 된다.

장점

시스템에서 관련된 기능을 하는 객체의 연결관계를 파악하기 쉬워진다.

단점

특정 로직에 맞춰져 있기에 재사용하기 힘들다.


참고