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!