Sobes.tech
Junior — Middle

Hoe implementeer je het uitvoeren van verschillende functies van methoden binnen een klasse, afhankelijk van de huidige staat of modus van de klasse?

sobes.tech AI

Antwoord van AI

Om verschillende varianten van het gedrag van klasse-methoden te implementeren afhankelijk van de huidige toestand of bedrijfsmodus, wordt vaak het "State"-patroon gebruikt.

Het idee is dat de klasse een interne toestand heeft, voorgesteld door aparte objecten die een gemeenschappelijke interface implementeren. De methodeaanroep wordt gedelegeerd aan de huidige toestand, die het specifieke gedrag bepaalt.

Voorbeeld in Java:

interface State {
    void handle();
}

class StateA implements State {
    public void handle() {
        System.out.println("Gedrag voor toestand A");
    }
}

class StateB implements State {
    public void handle() {
        System.out.println("Gedrag voor toestand B");
    }
}

class Context {
    private State state;

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

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

// Gebruik
Context context = new Context();
context.setState(new StateA());
context.request(); // Gedrag voor toestand A
context.setState(new StateB());
context.request(); // Gedrag voor toestand B

Op deze manier kan het gedrag van methoden worden gewijzigd zonder veel conditionele operatoren binnen de klasse te gebruiken.