Wzorzec projektowy łańcuch zobowiązań - chain of responsibility
Stronę tą wyświetlono już: 3435 razy
Opis wzorca projektowego łańcuch zobowiązań
Wzorzec projektowy łańcuch zobowiązań należy do czynnościowych wzorców projektowych. Umożliwia on tworzenie listy zadań (czynności), które będą wykonywane kolejno do momentu, gdzie nie będzie już więcej zadań do zrealizowania. Każde pod zadanie jest reprezentowane przez oddzielną klasę, która dziedziczy po wspólnym interfejsie. Interfejs ten agreguje interfejsy nowych zadań dodanych do listy. Łańcuch zobowiązań może być zamknięty lub otwarty. W przypadku jego zamknięcia zadania będą realizowane do momentu przerwania przez użytkownika.
Przykładowy diagram UML wzorca projektowego łańcuch zobowiązań
Na poniższym diagrami UML można zobaczyć klasy zadań, które muszą być zrealizowane aby możliwe było wystrzelenie pocisku z działa. Tymi zadaniami są obiekty klas:
- RemoveRim - usuwanie łuski z działa;
- PutBullet - załadowanie pocisku w dziale;
- Fire - odpalenie pocisku przez użytkownika (lub wyjście z programu);
Wszystkie powyższe klasy dziedziczą po jednym interfejsie iReload, który może agregować kolejne zadanie interfejsu oraz ma dostępną metodę umożliwiającą dodanie kolejnego zadania do zrealizowania na końcu łańcucha.
Przykładowa implementacja wzorca projektowego łańcuch zobowiązań w C++
Wynik działania powyższego kodu:
Remove rim from gun, please wait! ############################## Rim is removed!!! Put bullet in gun, please wait! ############################## Bullet is loaded!!! Ready to fire: Fire [0] Exit [not 0] 0 Fired!!! Remove rim from gun, please wait! ############################## Rim is removed!!! Put bullet in gun, please wait! ############################## Bullet is loaded!!! Ready to fire: Fire [0] Exit [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