Назад к вопросам
Junior — Middle
66
Каким образом реализовать выполнение различных функций методов внутри класса в зависимости от текущего состояния или режима работы класса?
Ответ от нейросети
sobes.tech AI
Для реализации разных вариантов поведения методов класса в зависимости от текущего состояния или режима работы часто используют паттерн «Состояние» (State).
Идея в том, что у класса есть внутреннее состояние, представленное отдельными объектами, реализующими общий интерфейс. Вызов метода делегируется текущему состоянию, которое определяет конкретное поведение.
Пример на Java:
interface State {
void handle();
}
class StateA implements State {
public void handle() {
System.out.println("Поведение для состояния A");
}
}
class StateB implements State {
public void handle() {
System.out.println("Поведение для состояния B");
}
}
class Context {
private State state;
public void setState(State state) {
this.state = state;
}
public void request() {
state.handle();
}
}
// Использование
Context context = new Context();
context.setState(new StateA());
context.request(); // Поведение для состояния A
context.setState(new StateB());
context.request(); // Поведение для состояния B
Так можно менять поведение методов без множества условных операторов внутри класса.