Mediator¶
Przeznaczenie
Definiuje obiekt kapsułkujący informacje o tym, jak obiekty współdziałają
Przyczynia się do rozluźnienia powiązań między obiektami, ponieważ obiekty nie odwołują się do siebie wprost
Zapewnia separację współpracujących obiektów od systemu
Umożliwia niezależną zmianę sposobu porozumiewania się obiektów
Kontekst
Zbiór obiektów porozumiewa się w dobrze zdefiniowany, lecz skomplikowany sposób. Wynikające stąd zależności są nieuporządkowane i trudne do zrozumienia
Problem
Chcemy wprowadzić obiekt pośredniczący w komunikacji między obiektami
Struktura¶

Uczestnicy¶
Mediator – definiuje interfejs porozumiewania się z obiektami Colleague
ConcreteMediator
implementuje wspólne zachowanie przez koordynowanie współpracy obiektów Colleague
zna i koordynuje swoich współpracowników
Colleague
każda klasa współpracownika zna swój obiekt Mediator
każdy współpracownik porozumiewa się ze swoim mediatorem zawsze wtedy, kiedy zwykle bezpośrednio porozumiewałby się z innym współpracownikiem
Współpraca¶
Współpracownicy wysyłają żądania do obiektu Mediator i otrzymują je od niego
Mediator implementuje wspólne zachowanie, przesyłając żądania między odpowiednimi współpracownikami
Podsumowanie¶
Hermetyzuje proces komunikacji między obiektami.
Definiuje luźne powiązania między obiektami.
Umożliwia łatwą reimplementację sposobu współpracy obiektów typu Colleague, bez konieczności definiowania klas pochodnych dla nich.