19. 중재자 패턴(Mediator Pattern)
중재자 패턴은 프로그램의 상호작용을 해야 하는 개체들이 서로 복잡하게 관계를 맺고 있을 경우에 상호작용에 관련된 행동을 별도의 형식으로 정의하여 중재를 맡는 개체를 두게 하는 패턴입니다. 프로그램을 작성하다 보면 복잡한 상호작용을 해야 하는 경우 개체들 간의 결합도는 강하게 되고 유연성이 떨어져서 재 사용하기 힘든 경우가 발생합니다. 특히, 하나의 개체에서 다른 개체에게 일방적으로 명령을 하는 것이 아니라 명령을 받는 개체도 특정 조건에서 명령을 내린 개체에게 명령을 내릴 수 있는 경우에는 구조적으로 취약하게 됩니다. 이와 같은 경우에 중재자 패턴을 사용하면 전체적으로 강한 결합도를 부분적으로만 결합도가 강한 상태를 유지하고 많은 부분에서 결합도를 느슨하게 하여 유연성과 재 사용성을 높일 수 있습니다.
중재자 패턴에서는 서로 명령을 주고 받을 수 있는 형식이 있다고 했을 때 서로 명령을 주고 받는 부분을 중재하는 형식을 정의를 하게 됩니다. 그리고, 원래 서로 명령을 주고 받았던 개체들은 중재자 개체를 알게 하고 중재자 개체는 이들 개체를 알게 합니다. 이제 특정 개체가 명령을 내릴 필요가 있으면 중재자 개체에게 전달하기만 하면 됩니다. 중재자는 해당 명령을 자신이 알고 있는 개체들 중에 적절한 개체에게 전달만 하면 됩니다. 이처럼 중재자 패턴을 사용하면 복잡한 상호작용을 하기 위한 복잡한 관계를 단순화시킬 수 있게 됩니다.
2016/04/28 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 중재자 패턴(Mediator Pattern) - 개요, 시나리오
2016/04/28 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 중재자 패턴(Mediator Pattern) - 설계(Design)
2016/04/28 - [프로그래밍 기술/Escort GoF의 디자인 패턴 C#] - [C#] 중재자 패턴(Mediator Pattern) - 구현
'프로그래밍 기술 > Escort GoF의 디자인 패턴 C#' 카테고리의 다른 글
[소프트웨어 패턴 C#] 24. 템플릿 메서드 패턴(Template Method Pattern) (2) | 2016.04.17 |
---|---|
[소프트웨어 패턴 C#] 23.전략 패턴(Strategy Pattern) (0) | 2016.04.17 |
[소프트웨어 패턴 C#] 22. 상태 패턴(State Pattern) (0) | 2016.04.17 |
[소프트웨어 패턴 C#] 21.감시자 패턴(Observer Pattern) (0) | 2016.04.17 |
[소프트웨어 패턴 C#] 20. 메멘토 패턴 (Memento Pattern) (0) | 2016.04.17 |
[소프트웨어 설계 패턴 C#] 18. 반복자 패턴(Iterator Pattern) (0) | 2016.04.17 |
[소프트웨어 설계 패턴 C#] 17. 해석자 패턴 (Iterpreter Pattern) (0) | 2016.04.17 |
[소프트웨어 설계 패턴 C#] 16. 명령 패턴 (Command Pattern) (0) | 2016.04.17 |
[소프트웨어 설계 패턴 C#] 책임 연쇄 패턴(Chain of Responsibility Pattern) (0) | 2016.04.17 |
[소프트웨어 설계 패턴 C#] 14. 프락시 패턴 (Proxy Pattern) - 보호용 프락시 (0) | 2016.04.17 |