Wzorzec projektowy mediator
Stronę tą wyświetlono już: 3914 razy
Opis wzorca projektowego mediator
Wzorzec projektory mediator należy do czynnościowych wzorców projektowych. Jego celem jest udostępnienie interfejsu pośredniczącego w przekazywaniu informacji pomiędzy różnymi nie połączonymi bezpośrednio z sobą obiektami klas, które dziedziczą po wspólnym interfejsie. Klasa pośrednicząca zawiera tablicę interfejsów klas.
Przykład diagramu UML wzorca projektowego mediator
Na poniższym diagramie UML widoczna jest klasa Mediator, która dziedziczy po interfejsie iMediator. Klasa ta zawiera tablicę asocjacyjną umożliwiającą przechowywanie pary danych klucz (std::string) → wartość (iMessage*). Wysłanie wiadomości odbywa się za pomocą metody tej klasy sendMessage zaś dodawanie nowych interfejsów odbywa się za pomocą metody registerObject.
Klasy User i Bot dziedziczą po wspólnym interfejsie iMessage. W moim przypadku dodatkowo zamieściłem wewnątrz interfejsu iMessage pole zawierające wskaźnik na interfejs iMediator. Dzięki temu obiekt klasy sam siebie próbuje zarejestrować oraz (w przypadku obiektów klasy bot) wysyłać automatycznie odpowiedzi.
Przykładowa implementacja wzorca projektowego mediator w C++
Przykładowy wynik działania programu:
Yury is registered R2D2 is registered What you want to do: Send a message [0] Quit program [not 0] 0 Send to who: R2D2 Message: what's your name R2D2 get some message from Yury what's your name Yury get some message from R2D2 My name is R2D2 What you want to do: Send a message [0] Quit program [not 0] 0 Send to who: R2D2 Message: how old are you R2D2 get some message from Yury how old are you Yury get some message from R2D2 I'm 50 years old Send a message [0] Quit program [not 0] 0 Send to who: R2D2 Message: what you doing R2D2 get some message from Yury what you doing Yury get some message from R2D2 I don't understand I can ansver only on questions bellow: what's your name how old are you What you want to do: Send a message [0] Quit program [not 0]
Tytuł:
C++. Projektowanie oprogramowania. Zasady i wzorce projektowe
Autor:
Klaus Iglberger
Tytuł:
Wzorce projektowe. Rusz głową! Tworzenie rozszerzalnego i łatwego w utrzymaniu oprogramowania obiektowego. Wydanie II
Autor:
Eric Freeman, Elisabeth Robson
Tytuł:
React 17. Wzorce projektowe i najlepsze praktyki. Projektowanie i rozwijanie nowoczesnych aplikacji internetowych. Wydanie III
Autor:
Carlos Santana Roldán
Tytuł:
Wzorce projektowe. Rusz głową! Tworzenie rozszerzalnego i łatwego w utrzymaniu oprogramowania obiektowego. Wydanie II
Autor:
Eric Freeman, Elisabeth Robson
Tytuł:
Wzorce projektowe w .NET Core 3. Projektowanie zorientowane obiektowo z wykorzystaniem C# i F#
Autor:
Dmitri Nesteruk
Tytuł:
Wzorce projektowe. Elementy oprogramowania obiektowego wielokrotnego użytku
Autor:
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
Tytuł:
Projektowanie interfejsów., Sprawdzone wzorce projektowe. Wydanie III
Autor:
Jenifer Tidwell, Charles Brewer, Aynne Valencia-Brooks
Tytuł:
Kubernetes. Wzorce projektowe. Komponenty wielokrotnego użycia do projektowania natywnych aplikacji chmurowych
Autor:
Bilgin Ibryam, Roland Huß
Tytuł:
Wzorce projektowe w .NET. Projektowanie zorientowane obiektowo z wykorzystaniem C# i F#
Autor:
Dmitri Nesteruk
Tytuł:
Programowanie zorientowane obiektowo. Wzorce projektowe. Wydanie II
Autor:
Alan Shalloway, James R. Trott