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.