A State minta lehetővé teszi egy objektum viselkedésének megváltoztatását annak állapota alapján. Ez a minta segít elkerülni a bonyolult feltételes logikát.
A State minta az állapotfüggő viselkedést külön osztályokba szervezi, így az objektum működése rugalmasan módosítható.
Egyszerű példa Java nyelven
interface State {
void handle();
}
class OnState implements State {
public void handle() {
System.out.println("Bekapcsolva");
}
}
class OffState implements State {
public void handle() {
System.out.println("Kikapcsolva");
}
}
class Context {
private State state;
public void setState(State state) {
this.state = state;
}
public void applyState() {
state.handle();
}
}
class Main {
public static void main(String[] args) {
Context context = new Context();
context.setState(new OnState());
context.applyState();
}
}