Sobes.tech
Junior — Middle

¿Cómo implementar la ejecución de diferentes funciones de métodos dentro de una clase dependiendo del estado actual o modo de operación de la clase?

sobes.tech AI

Respuesta de la IA

Para implementar diferentes variantes de comportamiento de los métodos de una clase dependiendo del estado o modo de operación actual, a menudo se utiliza el patrón de diseño "Estado" (State).

La idea es que la clase tenga un estado interno, representado por objetos separados que implementan una interfaz común. La llamada a un método se delega al estado actual, que determina el comportamiento específico.

Ejemplo en Java:

interface State {
    void handle();
}

class StateA implements State {
    public void handle() {
        System.out.println("Comportamiento para el estado A");
    }
}

class StateB implements State {
    public void handle() {
        System.out.println("Comportamiento para el estado B");
    }
}

class Context {
    private State state;

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

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

// Uso
Context context = new Context();
context.setState(new StateA());
context.request(); // Comportamiento para el estado A
context.setState(new StateB());
context.request(); // Comportamiento para el estado B

De esta manera, se puede cambiar el comportamiento de los métodos sin necesidad de múltiples operadores condicionales dentro de la clase.