Vloží zameniteľný algoritmus do objektu, ktorý sa dá podsunúť za behu.
class Trasa { najdi(odkial, kam) { throw new Error('abstraktná metóda'); }} class Autom extends Trasa { najdi(odkial, kam) { // po cestách, najkratší čas }} class Pesi extends Trasa { najdi(odkial, kam) { // aj cez parky a schody }} class Navigacia { #trasa; // Stratégiu podáva klient. Navigácia si ju sama nikdy nevymení. nastavTrasu(trasa) { this.#trasa = trasa; } najdi(odkial, kam) { return this.#trasa.najdi(odkial, kam); }} const navigacia = new Navigacia(); navigacia.nastavTrasu(new Autom());navigacia.najdi(domov, praca); navigacia.nastavTrasu(new Pesi());navigacia.najdi(domov, praca);