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()
{
...
}
}