Strategia (Strategy Pattern)

Note

Strategia umożliwia zmodyfikowanie działania obiektu już po jego utworzeniu.

Wzorzec ten wykorzystuje obiekty jako swego rodzaju “wtyczki”. W poniższym przykładzie wzorzec tem modyfikuje algorytm wykorzystywany do szyfrowania wiadomości:

Wzorzec ten wymaga napisania nadrzędnej klasy, która odpowiedzialna jest za wykonywanie poleconych zadań (często określanej w literaturze jako Context); w powyższy przypadku tę rolę pełni Encryptor. Klasa ta zawiera (jako pole) obiekt, który definiuje strategię; tu poszczególne strategie to algorytmy szyfrujące. Dziedziczą one po klasie bazowej EncryptionEngine. Encryptor umożliwia dynamiczną zmianę strategii - w trakcie działania programu.