Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: strategy pattern, behavioral patterns, gof patterns, design patterns

К какой группе паттернов относится Стратегия?

Вопрос проверяет знание классификации паттернов проектирования и понимание места паттерна Стратегия в общей системе паттернов GoF.

Короткий ответ

Паттерн Стратегия относится к поведенческим паттернам проектирования. Он определяет семейство алгоритмов, инкапсулирует каждый из них и делает их взаимозаменяемыми. Это позволяет изменять поведение объекта во время выполнения без изменения его кода.

Длинный ответ

Определение и классификация

Паттерн Стратегия (Strategy) — это поведенческий паттерн проектирования, который входит в классическую коллекцию паттернов GoF (Gang of Four). Поведенческие паттерны решают задачи эффективного взаимодействия между объектами, распределения обязанностей и управления алгоритмами.

Суть паттерна

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

Пример кода на JavaScript

// Интерфейс стратегии
class SortStrategy {
  sort(data) { throw new Error('Must implement'); }
}

// Конкретные стратегии
class BubbleSort extends SortStrategy {
  sort(data) {
    console.log('Сортировка пузырьком');
    return data.sort((a, b) => a - b);
  }
}

class QuickSort extends SortStrategy {
  sort(data) {
    console.log('Быстрая сортировка');
    return data.sort((a, b) => a - b);
  }
}

// Контекст
class Sorter {
  constructor(strategy) {
    this.strategy = strategy;
  }

  setStrategy(strategy) {
    this.strategy = strategy;
  }

  sort(data) {
    return this.strategy.sort(data);
  }
}

// Использование
const sorter = new Sorter(new BubbleSort());
sorter.sort([3, 1, 2]);
sorter.setStrategy(new QuickSort());
sorter.sort([3, 1, 2]);

Где применяется

  • Валидация форм с разными правилами
  • Расчет стоимости доставки в интернет-магазинах
  • Различные алгоритмы сжатия или шифрования
  • Системы оплаты с разными методами

Вывод: Паттерн Стратегия стоит применять, когда у вас есть несколько вариантов поведения, которые могут меняться во время выполнения, и вы хотите избежать громоздких условных конструкций, сделав код гибким и расширяемым.

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • JavaScript

    JavaScript

Ключевые слова

#strategy pattern

#behavioral patterns

#gof patterns

#design patterns

Подпишись на Python Developer в телеграм

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.