Heim  >  Artikel  >  Java  >  Zustand

Zustand

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-09-22 22:15:32657Durchsuche

Zustand

Der Zustand ist eines der Verhaltensentwurfsmuster. Dabei ändert sich das Verhalten einer Klasse basierend auf ihrem Zustand.

Schlüsselkonzepte:
Kontext: Klasse/Objekt, deren Verhalten sich je nach Zustand ändert
Zustand: abstrakter Zustand
Konkreter Zustand: Stellt verschiedene Zustände dar, die das Verhalten der Kontextklasse ändern.

Lassen Sie uns dies anhand eines Beispiels verstehen:

Zustand.java

public interface Zustand {
    public void doAction(Context context);
}

Konkrete Umsetzung des Staates

public class StartZustand implements Zustand {
    private Context context;
    public StartZustand(){}
    @Override
    public void doAction(Context context){
        this.context = context;
        this.context.setZustand(this);
        System.out.println("Player is in StartZustand");
    }

    public String toString(){
        return "Start Zustand";
    }
}

public class EndZustand implements Zustand {
    private Context context;
    public EndZustand(){}
    @Override
    public void doAction(Context context){
        this.context = context;
        this.context.setZustand(this);
        System.out.println("Player is in EndZustand");
    }

    public String toString(){
        return "End Zustand";
    } 
}

Haupt

public class Main {
    public static void main(String args[]){
        Context context = new Context();
        Zustand state = new StartZustand();
        state.doAction(context);
        //current state
        System.out.println(context.getZustand().toString());

        Zustand state2 = new EndZustand();
        state2.doAction(context);
        //new Zustand
        System.out.println(context.getZustand().toString());
    }
}

Ausgabe:

Player is in StartZustand
Start Zustand
Player is in EndZustand
End Zustand

Hinweis: Der obige Code folgt den soliden Prinzipien von ISP, LSP, SRP und OCP

Das obige ist der detaillierte Inhalt vonZustand. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn