Mediator 패턴은 모든 클래스간의 복잡한 상호작용을 캡슐화하여 하나의 클래스에 위임하여 처리하는 패턴입니다.
즉, M:N의 관계에서 M:1의 관계로 복잡도를 떨어뜨려 유지 보수 및 재사용의 확장성을 유리하게 해주는 패턴입니다.
구조
- Mediator
- 여러 Colleague 객체들을 중재해주는 인터페이스를 정의한 추상 클래스입니다.
- ConcreteMediator
- Colleague 객체들을 가지고 있으면서 중재해주는 역할을 하는 클래스입니다.
- Colleague
- Mediator 객체에 의해서 관리 및 중재를 받을 기본 클래스입니다.
- ColleagueA, ColleagueB
- 실제로 Mediator 객체에 의해서 관리 및 중재를 받는 클래스를 구현한 클래스입니다.
활용 상황
- 서로 전혀 다른 객체간의 상호 통신이 매우 복잡할때 유용합니다.
Mediator 패턴의 장단점
- 장점
- 효율적인 자원 관리가 가능합니다.
- 객체간의 통신을 위해 서로 직접 참조할 필요가 없습니다.
- 중재자 구현 클래스는 추후에 더 효율적인 클래스로 변경될 수 있습니다.
- 단점
- 객체간의 통신 로직이 복잡해지거나 객체의 형태가 자주 변경되는 경우 유지보수 및 관리가 어렵습니다.
'디자인 패턴 > 행위 패턴' 카테고리의 다른 글
Memento 패턴 (0) | 2021.11.16 |
---|---|
Template Method 패턴 (0) | 2021.11.09 |
Strategy 패턴 (0) | 2021.11.05 |
Interpreter 패턴 (0) | 2021.11.02 |
Chain of responsibility 패턴 (0) | 2021.10.29 |