Паттерн Стратегия в 1С
1С программист среднего уровня скорее всего так решит задачу отправки сообщения через разные системы (картинка 1).
У джуна скорее всего процедура ОтправитьНаСервере расползется строк на 1000.
Если заказчик попросит добавить отправку сообщения через вк и логирование отправки в журнал регистрации, то 1С программист изменит процедуру ОтправитьНаСервере и добавить новые методы отправки и регистрации в журнале регистрации. Кода станет в два раза больше, код станет еще менее читаемым.
1С программист, который знает паттерн Стратегия напишет код, как на картинке 2.
Контекст стратегии не изменит. Логгер пробросит через DI. Добавит ещё обработку. Доработает фабричный метод для стратегии. Такой код проще поддерживать, код не боится изменения требований.
Стратегию применяют, когда есть семейство схожих алгоритмов. Каждый алгоритм помещают в свой класс (общий модуль, обработку и тп). Во время работы программы подменяют алгоритм. Алгоритмы называют стратегиями, а логику вызовов называют контекстом.
Через стратегию решаются такие задачи:
1. Оплата через разных операторов
2. Подключаемое оборудование
3. Отправка СМС через разных операторов
4. Уведомления через разные системы - телеграмм, ватсап, система взаимодействия
Какие еще задачи в типовых решают через стратегию?