Sobes.tech
Junior — Middle

Cum se implementează executarea diferitelor funcții ale metodelor în interiorul unei clase, în funcție de starea curentă sau modul de funcționare al clasei?

sobes.tech AI

Răspuns de la AI

Pentru a implementa diferite variante de comportament ale metodelor unei clase în funcție de starea curentă sau modul de funcționare, se folosește adesea pattern-ul de proiectare "Stare" (State).

Ideea este ca clasa să aibă o stare internă, reprezentată de obiecte separate care implementează o interfață comună. Apelul metodei este delegat stării curente, care determină comportamentul specific.

Exemplu în Java:

interface State {
    void handle();
}

class StateA implements State {
    public void handle() {
        System.out.println("Comportament pentru starea A");
    }
}

class StateB implements State {
    public void handle() {
        System.out.println("Comportament pentru starea B");
    }
}

class Context {
    private State state;

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

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

// Utilizare
Context context = new Context();
context.setState(new StateA());
context.request(); // Comportament pentru starea A
context.setState(new StateB());
context.request(); // Comportament pentru starea B

Astfel, se poate schimba comportamentul metodelor fără a folosi multiple operatori condiționali în interiorul clasei.