StartWzorce projektoweStrategia (strategy)
Baza Wiedzy
Wersja offline serwisu przeznaczona na urządzenia z systemem Android.

Darowizny
darowiznaWspomóż rozwój serwisu


Nagłówki RSS
Kanał artykuły
Kanał implementacje
Kanał komentarze
Kanał forum


Bookmarki









Sonda
Implementacji w jakim języku programowania poszukujesz?
 
Strategia (strategy)
Ocena użytkowników:+++++ / 1
SłabyŚwietny 
Wpisany przez Kamil Dworak
środa, 04 sierpnia 2010 14:36
Strategia (ang. Strategy) jest czynnościowym wzorcem projektowym, będącym tak naprawdę pewną rodziną algorytmów. Algorytmy te upakowane są w oddzielne, w pełni wymienne (w trakcie działania programu) klasy. Na samej górze znajduje się klasa kontekstowa, wybierająca, który algorytm (ale tylko jeden!) będzie wykonywany. Dodawanie nowych algorytmów sprowadza się do stworzenia nowej klasy implementującej dany interfejs. Modyfikacja algorytmu to tylko modyfikacja odpowiedniej klasy. Mamy tutaj odseparowanie wyboru algorytmu od jego implementacji (sam klient nawet nie wie jak zbudowana jest dana strategia). Często występuje z wzorcem fabryki.

Uogólniony diagram wzorca:


Strategia



Diagram odpowiadający załączonemu przykładowi:


strategia - przykład

  • Użytkownik podaje nazwę zawodu.
  • Nazwa ta przekazywana jest do klasy kontekstowej za sprawą konstruktora.
  • W kontekście mamy trzy prywatne zmienne, odpowiednio od dostępnych interfejsów. Na podstawie przekazanego łańcucha wybieramy jedną, najbardziej odpowiadającą ścieżkę.
  • Dla każdej zmiennej wywoływany jest konstruktor, który definiuje każdą z nich, jako odpowiedni algorytm. Dzięki temu zmienne otrzymują dostęp do wszystkich metod klas.
  • Kolejno odpalamy metody. Rezultaty widoczne na ekranie.

 




Autor Język programowania Komentarz Otwórz Pobierz Ocena
Kamil Dworak C# Visual Studio 2008
Implementacja w C#
Implementacja w C#
++++- / 1
Kamil Dworak C/C++ Visual Studio 2008
Implementacja w C/C++
Implementacja w C/C++
++++- / 1
Kamil Dworak Java
Implementacja w Java
Implementacja w Java
++++- / 1
 
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: środa, 04 sierpnia 2010 14:47

Dodaj komentarz

Kod antysapmowy
Odśwież