Wzorzec projektowy polecenie - command
Stronę tą wyświetlono już: 3791 razy
Opis wzorca projektowego polecenie
Wzorzec projektowy polecenie należy do czynnościowych wzorców projektowych. Jego celem jest umieszczenie w jednej klasie zarządzającej wszystkich poleceń, które mogą być wywołane np. przy wciśnięciu przycisku klawiatury. W tejże klasie przechowywane są interfejsy obiektów klas, które wykonują określone polecenie.
Przykład diagramu UML wzorca projektowego polecenie
Na poniższym diagramie UML klasa KeyboardCommands zawiera pole commands, które jest zdolne do przechowywania pary danych: klucz (char) → polecenie (iCommand). Klucz określa jednocześnie pod jaki przycisk klawiatury podpięty został dany interfejs polecenia.
Interfejs iCommand jest dziedziczony przez klasy, będące jednocześnie poleceniami programu. Są to klasy:
- CommandLeft - wykonująca operację przemieszczenia samochodu w lewo;
- CommandRight - wykonująca operację przemieszczenia samochodu w prawo;
- CommandForward - wykonująca operację przemieszczenia samochodu do przodu;
- CommandBack - wykonująca operację przemieszczenia samochodu do tyłu;
- CommandExit - wyjście z programu
Pierwsze cztery klasy przechowują wskaźnik do obiektu klasy Car wywołując jego metody wewnętrzne odpowiedzialne za przemieszczanie się samochodu.
Przykładowa implementacja wzorca projektowego polecenie w C++
Przykładowy wynik działania programu:
x 10 y 10 Changed Live or die, make your move: Turn left [a] Turn right [d] Move back [s] Move forward [w] Exit [x] a Moved left x 9 y 10 Live or die, make your move: Turn left [a] Turn right [d] Move back [s] Move forward [w] Exit [x] d Moved right x 10 y 10 Live or die, make your move: Turn left [a] Turn right [d] Move back [s] Move forward [w] Exit [x] w Moved forward x 10 y 11 Live or die, make your move: Turn left [a] Turn right [d] Move back [s] Move forward [w] Exit [x] s Moved back x 10 y 10 Live or die, make your move: Turn left [a] Turn right [d] Move back [s] Move forward [w] Exit [x] x Exit x 10 y 10
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