Pola Desain - Pola Status
Dalam pola State, perilaku kelas berubah berdasarkan statusnya. Jenis pola desain ini berada di bawah pola perilaku.
Dalam pola Status, kami membuat objek yang mewakili berbagai status dan objek konteks yang perilakunya bervariasi saat objek statusnya berubah.
Penerapan
Kita akan membuat antarmuka State yang mendefinisikan kelas negara tindakan dan konkret yang mengimplementasikan antarmuka State . Konteks adalah kelas yang membawa Negara.
StatePatternDemo , kelas demo kami, akan menggunakan objek Konteks dan status untuk mendemonstrasikan perubahan dalam perilaku Konteks berdasarkan jenis statusnya .
Langkah 1
Buat antarmuka.
State.java
public interface State {
public void doAction(Context context);
}
Langkah 2
Buat kelas konkret dengan menerapkan antarmuka yang sama.
StartState.java
public class StartState implements State {
public void doAction(Context context) {
System.out.println("Player is in start state");
context.setState(this);
}
public String toString(){
return "Start State";
}
}
StopState.java
public class StopState implements State {
public void doAction(Context context) {
System.out.println("Player is in stop state");
context.setState(this);
}
public String toString(){
return "Stop State";
}
}
LANGKAH 3
Buat Kelas Konteks .
Context.java
public class Context {
private State state;
public Context(){
state = null;
}
public void setState(State state){
this.state = state;
}
public State getState(){
return state;
}
}
LANGKAH 4
Gunakan Konteks untuk melihat perubahan perilaku saat Status berubah.
StatePatternDemo.java
public class StatePatternDemo {
public static void main(String[] args) {
Context context = new Context();
StartState startState = new StartState();
startState.doAction(context);
System.out.println(context.getState().toString());
StopState stopState = new StopState();
stopState.doAction(context);
System.out.println(context.getState().toString());
}
}
LANGKAH 5
Verifikasi hasilnya.
Player is in start state
Start State
Player is in stop state
Stop State