Strategy šablonas apibrėžia tarpusavyje keičiamų algoritmų/elgesio šeimą, inkapsulina kiekvieną iš jų ir daro juos keičiamus vykdymo metu. Jis leidžia dinamiškai pasirinkti algoritmą ir išvengti sudėtingų sąlyginių operatorių, skatindamas lanksčią, išplečiamą kodą.
Ką daro Strategy šablonas
STRATEGY → encapsulate INTERCHANGEABLE algorithms/behaviors behind a common interface:
→ define a family of strategies (each implements the same interface)
→ the context uses a strategy via the interface → can SWAP strategies at runtime
→ choose the behavior dynamically without changing the context
→ "compose" behavior instead of hardcoding it (favor composition over conditionals)
