Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Java: strategy, pattern, algorithm

Расскажи про паттерн "Стратегия".

Проверяет знание паттерна для динамического выбора алгоритмов.

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

Стратегия — это паттерн, позволяющий выбирать алгоритм во время выполнения (например, сортировка или оплата). Алгоритмы инкапсулируются в отдельные классы и могут заменяться.

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

Как работает:

  1. Интерфейс стратегии:

    interface PaymentStrategy {
        void pay(int amount);
    }
  2. Конкретные стратегии:

    class CreditCardPayment implements PaymentStrategy {
        void pay(int amount) { /* Оплата картой */ }
    }
    
    class PayPalPayment implements PaymentStrategy {
        void pay(int amount) { /* Оплата через PayPal */ }
    }
  3. Контекст:

    class ShoppingCart {
        private PaymentStrategy strategy;
    
        void setStrategy(PaymentStrategy strategy) {
            this.strategy = strategy;
        }
    
        void checkout(int amount) {
            strategy.pay(amount);
        }
    }

Пример использования:

ShoppingCart cart = new ShoppingCart();
cart.setStrategy(new CreditCardPayment());
cart.checkout(100); // Оплата картой

Вывод:

  • Полезен для:

    • Динамической смены поведения.

    • Избегания условных операторов (if-else).

Уровень

  • Рейтинг:

    1

  • Сложность:

    6

Навыки

  • Java

    Java

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

#strategy

#pattern

#algorithm

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