Сегодня мы поговорим о паттерне проектирования, который делает ваш внешний код более элегантным, — паттерне стратегии. Если вы еще не подписались на нашу официальную учетную запись, нажмите на карточку «Подписаться» выше, и давайте вместе повеселимся в мире программирования!

Обзор паттернов стратегии

Паттерны стратегии, похоже, что мы ведем битву и используем разные стратегии, чтобы победить врага. На самом деле, в мире программирования мы тоже «боремся» с различными проблемами, и Паттерны Стратегий — одно из наших «оружий». Это может помочь нам абстрагировать некоторые операции в набор независимых стратегий, а затем динамически выбирать стратегию для выполнения действий во время выполнения.

Но это не значит, что нам нужно создавать стратегию для каждой проблемы. Вместо этого в режиме стратегии делается упор на выбор наиболее подходящей стратегии в различных условиях и с различными потребностями. Так же, как и в бою, мы не выбираем оружие вслепую, а выбираем наиболее подходящую стратегию, исходя из характеристик противника и текущей обстановки. В этом прелесть режима стратегии.

Паттерны стратегии во фронтенд-разработке

Итак, как мы используем шаблоны политики во фронтенд-разработке? Существует множество проблем, которые можно решить с помощью шаблонов стратегии, таких как оптимизация блока if/else Code, обработка различных проблем совместимости браузеров или проверка формы.

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

Давайте посмотрим на некоторые конкретные примеры!

Пример внешнего интерфейса в режиме стратегии

Приведенные ниже примеры были тщательно отобраны мной в надежде, что они дадут вам более глубокое понимание паттерна стратегии.