Sobes.tech
Junior — Middle
104

Класс ичиндеги ар кандай функцияларды ишке ашырууну кандайча ишке ашыруу керек, классдын учурдагы абалына же иштөө режимине жараша?

AIден жооп

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

Так можно менять поведение методов без множества условных операторов внутри класса.