Pull to refresh

Comments 8

В некоторых примерах просто добавили слово стратегия.
Стратегия — это делегирование части логики алгоритма вовне. В большинстве случаев реализация паттерна представляет из себя передачу коллбэка в функцию.
Стратегия в сортировке, это не выбор алгоритма целиком, а передача в алгоритм функции сравнения, что позволяет использовать повторно использовать алгоритм сортировки, когда понадобится отсортировать элементы по другому критерию.

Тот же текст, переписанный из ОО в ФП стиле (и переведенный на английский еще, чтобы можно было твитнуть):


Use dependency injection whenever possible to decouple things.

Не благодарите.

Почти как в анекдоте: «Эдак ты мне все программирование к стратегиям сведешь!». Местами в примерах у вас просто полиморфизм.
Мне нравится такое неформальное определение стратегии. Если сейчас хочется в метод передать параметром функцию/лямбду, то раньше бы это превратилось в стратегию.
Причем тут .Net? Тем более яп непонятно какой…

На каком языке написаны примеры?

исключающий процедурный стиль IF…. ELSE…… или SWITCH …. CASE….

Он переехал в CipherFactory. Но ваш вариант конечно солиднее выглядит.
Я вот тоже не очень понял это. В том же примере с принтером почему-то опущен момент, когда и как в принтер передается конкретная стратегия печати. А перед передачей конкретной еще кто-то должен ведь решить, какая именно сейчас нужна, а значит, вот вам if/else, от которого стремились уйти.
Sign up to leave a comment.

Articles