Junior — Middle
Comment implémenter l'exécution de différentes fonctions de méthodes au sein d'une classe en fonction de l'état actuel ou du mode de fonctionnement de la classe?
sobes.tech IA
Réponse de l'IA
Pour implémenter différentes variantes de comportement des méthodes d'une classe en fonction de l'état ou du mode de fonctionnement actuel, on utilise souvent le patron de conception "État" (State).
L'idée est qu'une classe possède un état interne, représenté par des objets distincts implémentant une interface commune. L'appel d'une méthode est délégué à l'état actuel, qui détermine le comportement spécifique.
Exemple en Java :
interface State {
void handle();
}
class StateA implements State {
public void handle() {
System.out.println("Comportement pour l'état A");
}
}
class StateB implements State {
public void handle() {
System.out.println("Comportement pour l'état B");
}
}
class Context {
private State state;
public void setState(State state) {
this.state = state;
}
public void request() {
state.handle();
}
}
// Utilisation
Context context = new Context();
context.setState(new StateA());
context.request(); // Comportement pour l'état A
context.setState(new StateB());
context.request(); // Comportement pour l'état B
Ainsi, le comportement des méthodes peut être modifié sans utiliser de nombreux opérateurs conditionnels dans la classe.