State

Das State Pattern (siehe Design Pattern) wird benutzt, wenn ein Objekt sein Verhalten ändert, wenn sich sein innerer Zustand ändert. Bei diesem Pattern wird Delegation mit einem Zielobjekt (State) verwendet, das sich mit dem Zustand des Quellobjekts (Context) ändert.

public class Context
{
private
State state;
//
public Context()
{
super();
//
state = new State1();
}
//
public void doSomething()
{
state.doSomething();
}
//
public void changeStateTo1()
{
state = new State1();
}
//
public void changeStateTo2()
{
state = new State2();
}
}

public interface
State
{
public void doSomething();
}

public class State1 implements
State
{
public State1()
{
super();
}
//
public void doSomething()
{
...
}
}

public class State2 implements
State
{
public State2()
{
super();
}
//
public void doSomething()
{
...
}
}