Sobes.tech
Junior — Middle

Wie kann man die Ausführung verschiedener Funktionen von Methoden innerhalb einer Klasse je nach aktuellem Zustand oder Betriebsmodus der Klasse implementieren?

sobes.tech KI

Antwort von AI

Umsetzung verschiedener Verhaltensvarianten von Klassenmethoden abhängig vom aktuellen Zustand oder Betriebsmodus erfolgt häufig durch das "Zustands"-Muster (State).

Die Idee ist, dass die Klasse einen internen Zustand hat, der durch separate Objekte repräsentiert wird, die ein gemeinsames Interface implementieren. Der Methodenaufruf wird an den aktuellen Zustand delegiert, der das konkrete Verhalten bestimmt.

Beispiel in Java:

interface State {
    void handle();
}

class StateA implements State {
    public void handle() {
        System.out.println("Verhalten für Zustand A");
    }
}

class StateB implements State {
    public void handle() {
        System.out.println("Verhalten für Zustand B");
    }
}

class Context {
    private State state;

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

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

// Verwendung
Context context = new Context();
context.setState(new StateA());
context.request(); // Verhalten für Zustand A
context.setState(new StateB());
context.request(); // Verhalten für Zustand B

Auf diese Weise kann das Verhalten der Methoden geändert werden, ohne viele if-else-Bedingungen innerhalb der Klasse zu verwenden.