Шаблон дизайну Стратегії часто розглядаються в якості заміни для функцій першого класу на мовах , які НЕ мають їх.
Так, наприклад, скажіть, що ви хотіли передати функціональність об'єкту. У Java вам доведеться передати об’єкту ще один об'єкт, який інкапсулює бажану поведінку. Мовою, такою як Ruby, ви просто передасте функціональність у вигляді анонімної функції.
Однак я думав над цим і вирішив, що, можливо, стратегія пропонує більше, ніж звичайна анонімна функція.
Це тому, що об’єкт може утримувати стан, який існує незалежно від періоду, коли він працює методом. Однак анонімна функція сама по собі може утримувати стан, який перестає існувати в момент закінчення виконання функції.
Чи має в об'єктно-орієнтованій мові, яка підтримує функції першого класу, якась стратегія має якусь перевагу перед використанням функцій?