Wzornictwo strategia jest często traktowane jako substytut funkcji pierwszej klasy w językach, które ich nie posiadają.
Powiedzmy na przykład, że chcesz przekazać funkcjonalność do obiektu. W Javie musisz przekazać obiektowi inny obiekt, który zawiera pożądane zachowanie. W języku takim jak Ruby wystarczy przekazać samą funkcjonalność w postaci funkcji anonimowej.
Jednak myślałem o tym i zdecydowałem, że może Strategia oferuje coś więcej niż zwykła anonimowa funkcja.
Wynika to z faktu, że obiekt może utrzymać stan, który istnieje niezależnie od okresu, w którym działa jego metoda. Jednak sama anonimowa funkcja może utrzymać stan, który przestaje istnieć w momencie, gdy funkcja zakończy wykonywanie.
Czy w języku obiektowym, który obsługuje funkcje najwyższej klasy, wzorzec strategii ma jakąkolwiek przewagę nad używaniem funkcji?