Найти в Дзене
DEBAGanov

Java 1356. шаблон проектирование "Стратегия".

1356. шаблон проектирование "Стратегия"

Шаблон проектирования "Стратегия" (Strategy) является одним из шаблонов поведения (behavioral patterns) в Java. Он позволяет определить семейство алгоритмов, инкапсулировать каждый из них и сделать их взаимозаменяемыми. Таким образом, можно изменять алгоритмы независимо от клиентов, которые их используют.

Описание шаблона "Стратегия" Шаблон "Стратегия" состоит из следующих компонентов:

  • Контекст (Context): Это класс, который содержит ссылку на объект стратегии и использует его для выполнения определенного алгоритма. Контекст предоставляет интерфейс для клиентов, чтобы они могли взаимодействовать с различными стратегиями.
  • Стратегия (Strategy): Это интерфейс или абстрактный класс, который определяет общий интерфейс для всех конкретных стратегий. Он может содержать один или несколько методов, которые должны быть реализованы всеми конкретными стратегиями.
  • Конкретные стратегии (Concrete Strategies): Это классы, которые реализуют интерфейс или наследуют абстрактный класс стратегии. Каждая конкретная стратегия представляет собой отдельный алгоритм, который может быть использован контекстом.

Пример использования шаблона "Стратегия" в Java Вот пример кода, демонстрирующий использование шаблона "Стратегия" в Java:

// Шаг 1: Определение интерфейса стратегии interface Strategy {
void execute();
}

// Шаг 2: Реализация конкретных стратегий class ConcreteStrategy1 implements Strategy {
public void execute() {
System.out.println("Выполняется стратегия 1");
}
}

class ConcreteStrategy2 implements Strategy {
public void execute() {
System.out.println("Выполняется стратегия 2");
}
}

// Шаг 3: Реализация контекста class Context {
private Strategy strategy;

public void setStrategy(Strategy strategy) {
this.strategy = strategy;
}

public void executeStrategy() {
strategy.execute();
}
}

// Пример использования public class Main {
public static void main(String[] args) {
// Создание контекста
Context context = new Context();

// Установка стратегии 1
context.setStrategy(new ConcreteStrategy1());
// Выполнение стратегии 1
context.executeStrategy();


// Установка стратегии 2
context.setStrategy(new ConcreteStrategy2());
// Выполнение стратегии 2
context.executeStrategy();
}
}

В этом примере создается интерфейс Strategy, который определяет метод execute(). Затем создаются две конкретные стратегии ConcreteStrategy1 и ConcreteStrategy2, которые реализуют этот интерфейс. Контекст Context содержит ссылку на объект стратегии и использует его для выполнения алгоритма. Клиентский код может установить нужную стратегию в контекст и вызвать метод executeStrategy(), чтобы выполнить соответствующий алгоритм.

В результате выполнения этого кода будет выведено следующее:

Выполняется стратегия 1
Выполняется стратегия 2

Это простой пример использования шаблона "Стратегия" в Java. Он позволяет легко добавлять новые стратегии и изменять поведение программы без изменения контекста.

1606 вопрос-ответ по Java

Курс Spring Framework

Tелеграмм каналDEBAGanov

Мое резюмеDEBAGanov

Если вам понравилось, буду признателен за подписку.