Встречается на собеседованиях • сегодня
В чем разница между шаблонами ООП Состояние и Стратегия
Оба шаблона позволяют менять поведение объекта, но с разными целями:
Состояние (State)
Меняет поведение объекта в зависимости от его внутреннего состояния. Состояния знают друг о друге и могут переключать контекст.
Пример:
java
interface State {
void handle(Context context);
}
class ConcreteStateA implements State {
public void handle(Context context) {
context.setState(new ConcreteStateB());
}
}
text
**Стратегия (Strategy)**
Определяет семейство алгоритмов, инкапсулирует каждый и делает их взаимозаменяемыми. Стратегии не знают друг о друге.
Пример:
```java
interface Strategy {
void execute();
}
class ConcreteStrategyA implements Strategy {
public void execute() {
// алгоритм A
}
}Ключевое отличие: State управляет переходами между состояниями, а Strategy просто предоставляет разные алгоритмы без управления переключениями.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы