Zastosowanie wzorca strategii do składania obliczenia
Obliczenie (algorytmy wykonywane przez agenta) składa się z pewnych podstawowych i w dużym stopniu niezależnych fragmentów -- operacji reprezentujących pewne części jego wykonania. Operacje te mogą być realizowane w różny sposób (za pomocą różnych algorytmów). Co więcej, operacje te mogą być zdekomponowane - większe operacje same mogą składać się bowiem z mniejszych podoperacji.
W tej sytuacji konfigurację systemu obliczeniowego znacząco ułatwia zastosowanie wzorca projektowego ,,strategia'' , którego strukturę przedstawiono na rysunku. Pozwala on na wybór odpowiedniego algorytmu operacji (StrategyImplA
bądź StrategyImplB
), bez konieczności modyfikacji klasy wykonującej daną operację (Context
). Co więcej, dzięki użyciu wzorca ,,strategia'' obiekt obliczeniowy nie musi być świadomy istniejących implementacji operacji przez niego wykonywanych - jest zależny tylko od interfejsu danej operacji (Strategy
). Pozwala to na uniezależnienie od siebie procesu implementacji agentów oraz używanych przez nich algorytmów.
Rysunek 1. Wzorzec projektowy "strategia"
Strategie, jako że są w rzeczywistości jedynie algorytmami realizacji danej operacji, odpowiadają tylko za prawidłowe przekształcenie przekazanych im danych wejściowych. W przypadku identycznych danych wejściowych przebieg operacji powinien być więc identyczny. Nie oznacza to oczywiście, że sam wynik operacji musi być taki sam - strategie mogą bowiem zawierać w sobie element losowy.