Newsletter

Grupa MagazynyInternetowe

Online: 889

Wyszukiwarka

Wzorce projektowe

Wzorce projektowe - polecenie

Wzorce projektowe - polecenie Wzorzec ten należy do wzorców czynnościowych, czyli opisujących sposób przepływu danych w złożonych aplikacjach.

Marcin Staniszczak

Nadeszła pora, aby zapoznać się z kolejnym wzorcem projektowym. Tym razem będzie nim Polecenie (ang. Command). Wzorzec ten należy do wzorców czynnościowych (dla przypomnienia, wzorce czynnościowe opisują sposób przepływu danych w złożonych aplikacjach). Tak jak to było w przypadku wszystkich poznanych do tej pory wzorców, tak i w tym wypadku nazwa Polecenie doskonale oddaje ideę jego działania (co zapewne sam stwierdzisz po przeczytaniu niniejszego artykułu).

Program komputerowy jest zbiorem instrukcji sterowanych przez użytkowników bądź przez pewne zdarzenia. Niestety najczęściej instrukcje te są obiektami posiadającymi zupełnie odmienne interfejsy, w związku z czym w niektórych przypadkach zarządzanie nimi staje się problematyczne.

Przeanalizujmy przykład występujący często w aplikacjach internetowych – cykliczne wykonywanie pewnych zadań. Problem ten rozwiązuje się, podpinając program (skrypt) pod uniksowego Crona, zaś w przypadku webowych aplikacji napisanych w Javie, posłużyć się można Quartzem (http://www.opensymphony.com/qu...). Jak jednak rozwiązać sam problem dodawania zadań wykonywanych cyklicznie?

Załóżmy, że w pewnych odcinkach czasu mamy jednocześnie dokonać wygenerowania plików XML dla RSS-a i Atoma, wysłać e-maile z informacjami o nowościach do osób, które zapisały się na news-letter oraz pobrać aktualne kursy walut z serwisu NBP (np. na potrzeby przeliczenia cen towarów w sklepie internetowym). Dla ułatwienia wszystkie te operacje wykonywane są w tym samym czasie, np. raz na dzień. A oto interfejsy klas wykonujących odpowiednie zadania:

Interfejs wspólny dla klas generujących kanały RSS oraz Atom:

PHP:
[+]
 
PHP
Pobierz
1. interface Kanaly {
2.   public function generujPlikXML();
3. }
Java:
[+]
 
Java
Pobierz
1. public interface Kanaly {
2.   public void generujPlikXML();
3. }

Interfejs klasy wysyłającej e-maile z newsletterem prezentuje się następująco:

PHP:
[+]
 
PHP
Pobierz
1. interface Newsletter {
2.   public function zapisz($objUzytkownik);
3.   public function wypisz($objUzytkownik);
4.   public function pobierzOsobyZapisane();
5.   public function wyslijNewsletter($arrAdresyEMail);
6. }
Java:
[+]
 
Java
Pobierz
1. public interface Newsletter {
2.   public void zapisz(Uzytkownik u);
3.   public void wypisz(Uzytkownik u);
4.   public List<Uzytkownik> pobierzOsobyZapisane();
5.   public void wyslijNewsletter(List<Uzytkownik>adresyEMail);
6. }

I na koniec interfejs klasy pobierającej aktualne kursy walut z serwisu NBP:

PHP:
[+]
 
PHP
Pobierz
1. interface KursyWalut {
2.   public function aktualizuj();
3.   public function pobierzKurs($strWaluta);
4. }
Java:
[+]
 
Java
Pobierz
1. public interface KursyWalut {
2.   public void aktualizuj();
3.   public double pobierzKurs(String waluta);
4. }

Same implementacje klas wykonujących odpowiednie zadania pozostawimy puste. Zadbamy jedynie o wyświetlanie odpowiednich informacji, tak abyś mógł łatwo prześledzić proces wykonywania programu:

PHP:
[-]
 
PHP
Pobierz
Listing zwinięty - 37 linii
Java:
[-]
 
Java
Pobierz
Listing zwinięty - 42 linii
25 stycznia 2008

Powiązane publikacje

Wzorce projektowe - fasada

Wzorce projektowe - fasada

Wzorce projektowe - adapter

Wzorce projektowe - adapter

Wzorce projektowe - strategia

Wzorce projektowe - strategia

Wzorce projektowe - fabryka

Wzorce projektowe - fabryka

 
Wzorce projektowe - proxy

Wzorce projektowe - proxy

Wzorce projektowe - stan

Wzorce projektowe - stan

Wzorce projektowe - obserwator

Wzorce projektowe - obserwator

Wzorce projektowe - dekorator

Wzorce projektowe - dekorator

 
Wzorce projektowe - singleton

Wzorce projektowe - singleton

 
Skomentuj
ten artykuł

Brak komentarzy

Kod obrazkowy
(Kliknij, aby zmienić)
 

Autor

Marcin Staniszczak

Artykuły tego autora:

Pozostałe publikacje

Wzorce projektowe - fasada

Wzorce projektowe - fasada

Fasada jest wzorcem zaliczającym się do wzorców strukturalnych. Jest to jeden z popularniejszych, a jednocześnie najprostszych wzorców projektowych.

Newsletter

Jesli chcesz być na bieżąco z tym co się dzieje na stronie magazynu INTERNET Maker zapisz się do naszego newslettera.