Keller-Dev Docs · Java & Hytale

Java Core

Kapselung von Zuständen und Validierung von Zustandsübergängen

Statt freien Schreibzugriff auf Zustände über setStatus() zuzulassen, schützt das Objekt seine eigenen Zustandsübergänge durch explizit benannte Methoden (z. B. start(), complete()). Design-Regeln:Kein öffentlicher Setter: Der interne Status kann von außen nicht direkt überschrieben werden. Validierung vor Änderung: Jede Übergangsmethode prüft, ob der aktuelle Status den Übergang erlaubt. Explizites Fehlschlagen ("Fail-Fast"): Wird ein ungültiger Übergang versucht (z. B. Beenden einer noch nicht gestarteten Quest), wirft die Methode eine IllegalStateException. Dadurch werden Programmier- oder Ablauffehler sofort sichtbar und nicht unbemerkt ignoriert.

Referenz: Datei 1. Spielprojekt · Klasse Quest
public void start() {
    if (status != Queststatus.NOT_STARTET) {
        throw new IllegalStateException(
                "Quest '" + id + "' kann nicht gestartet werden - aktueller Status: " + status
        );
    }
    status = Queststatus.ACTIVE;
}

public void complete() {
    if (status != Queststatus.ACTIVE) {
        throw new IllegalStateException(
                "Quest '" + id + "' kann nicht abgeschlossen werden - aktueller Status: " + status
        );
    }
    status = Queststatus.COMPLETED;
}
#state-machine #encapsulation #domain-logic #validation #exceptions
Bearbeiten