algorytm.org

Polecenie (command)

Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Polecenie (command)
Ocena użytkowników:***** / 5
SłabyŚwietny 
Wpisany przez Kamil Dworak, 22 września 2010 20:24

Polecenie (ang. command) - czynnościowy wzorzec projektowy. Jego celem jest enkapsulacja żądań użytkownika (wraz z ich parametrami) do postaci obiektów, które nazywamy poleceniami.
Obiekty te muszą być podporządkowane pod ten sam interfejs, zawierający jedną metodę, wykonującą określone żądanie, ale czy tylko jedno? Oczywiście, że nie, co widać w załączonym przykładzie (multicasting), tam odpalamy aż trzy żądania. Dodatkowo mamy obiekt wywołujący (rozkazujący) oraz pewną liczbę odbiorców, przyjmujących i realizujących zlecone polecenia. Nie wiemy kto i jakie operacje wykonuje.
Czasami też taki interfejs posiada dodatkową metodę, która cofa ostatnio wykonane żądanie, przywracając poprzedni porządek. Wraz z multicastingiem, mamy tutaj potężny mechanizm odzyskiwania poprzedniego stanu. Jest to idealne narzędzie do tworzenia jakichkolwiek transakcji oraz rejestrów. Metody mogą być wywoływane synchronicznie (stosowane do różnego rodzaju kolejek żądań) lub asynchronicznie (równolegle, przy pomocy wielowątkowości).

polecenie


Diagram dla przykładu:
polecenie - przykład


  • tworzymy obiekt wywołujący trener oraz pewną grupę zawodników,
  • implementujemy polecenia przypisując nim wybranych wykonawców, czyli naszych zawodników,
  • ustawiamy nasze żądanie w obiekcie wywołującym, a następnie wykonujemy rozkaz (odpala się metoda wykonaj() ),
  • gdy już mamy dosyć i zdecydowaliśmy, że to już koniec, wywołujemy metodę cofnij (wracamy do poprzedniego stanu),
  • na sam koniec implementujemy tablicę, w której znajdują się wszystkie zaimplementowane dyscypliny. Tworzymy polecenie pełnego (kompletnego) treningu. Ustawiamy i zlecamy (multicasting).



Implementacje
AutorJęzyk
programowania
KomentarzOtwórzPobierzOcena
Kamil DworakC#Visual Studio 2008
.cs
.cs
***** / 3
Andrzej BoruckiDelphi/Pascal
.pas
.pas
***** / 0
Andrzej BoruckiDelphi/PascalPraktyczny przykład (eliminacja Gaussa)
.pas
.pas
***** / 0
Kamil DworakJava
.java
.java
***** / 7
 
Dodaj własną implementację tego algorytmu
  • Zaloguj się na stronie
Plik:
Język
programowania:
Komentarz:
  By móc dodać implementacje zaloguj się na stronie

Poprawiony: 21 marca 2011 21:10
Dodaj komentarz