Встречается на собеседованиях • сегодня

Что такое паттерн State

Паттерн State позволяет объекту изменять свое поведение при изменении его внутреннего состояния. Внешне это выглядит так, будто объект изменил свой класс.

Пример:

java
interface State {
    void handle(Context context);
}

class ConcreteStateA implements State {
    public void handle(Context context) {
        context.setState(new ConcreteStateB());
    }
}

class ConcreteStateB implements State {
public void handle(Context context) {
context.setState(new ConcreteStateA());
}
}

class Context {
private State state;

text
public Context(State state) {
    this.state = state;
}

public void setState(State state) {
    this.state = state;
}

public void request() {
    state.handle(this);
}

}

text
**Использование:**  
```java
Context context = new Context(new ConcreteStateA());
context.request(); // Переключится в StateB
context.request(); // Вернется в StateA

Плюсы:

  • Избегает больших условных операторов.
  • Упрощает добавление новых состояний.
  • Инкапсулирует логику состояний в отдельные классы.

Минусы:

  • Может усложнить код, если состояний мало.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы