Шаблон «Стратегия»
Стратегия— поведенческий шаблон, который позволяет выбрать поведение программы в процессе выполнения в зависимости от контекста путем инкапсуляции нескольких алгоритмов в разных классах.
В примере выше выбор стратегии основан на значении переменной$context
, которое было в момент создания объекта. Если значение было"context_for_class_one"
, программа будет использовать классclass_one
. И наоборот.
Хорошо, но где это можно использовать?
Представьте, что вы разрабатываете класс, который может создать или обновить запись в базе данных. В обоих случаях входные параметры будут одни и те же (имя, адрес, номер телефона и т. п.), но, в зависимости от ситуации, он будет должен использовать различные функции для обновления и создания записи.