Стратегия — это поведенческий паттерн проектирования, который определяет семейство схожих алгоритмов и помещает каждый из них в собственный класс, после чего их можно взаимозаменять во время выполнения программы.
Использовать этот паттерн можно, если:
— имеется несколько родственных классов, которые отличаются поведением;
-необходимо обеспечить выбор из нескольких алгоритмов, которые можно легко менять;
— необходимо изменять поведение объектов во время выполнения программы;
— класс, применяющий определенную функциональность, ничего не должен знать о ее реализации.
Преимущества:
- Замена алгоритмов во время выполнения программы ;
- Изолирование кода и данных алгоритма;
- Переход от наследования к делегированию;
- Наличие принципа закрытости\открытости.
Недостатки:
- Усложнение кода путем добавления новых классов;
- Необходимо понимать разницу стратегий, чтобы выбрать подходящую.
Теперь рассмотрим конкретный пример. Существуют автомобили на различных видах топлива: бензин, газ и электричество. Также бывают гибридные. Все они имеют схожие свойства, но отличаются по типу используемого топлива. В данном случае смело можно использовать паттерн стратегию.
Реализация на языке C#:
Автор: Пасмурнов Александр