Files
java-design-patterns/state/src/main/java/com/iluwatar/Mammoth.java
2014-10-08 13:42:12 +01:00

38 lines
648 B
Java

package com.iluwatar;
/**
*
* Mammoth has internal state that defines its behavior.
*
*/
public class Mammoth {
private State state;
public Mammoth() {
state = new PeacefulState(this);
}
public void timePasses() {
if (state.getClass().equals(PeacefulState.class)) {
changeStateTo(new AngryState(this));
} else {
changeStateTo(new PeacefulState(this));
}
}
private void changeStateTo(State newState) {
this.state = newState;
this.state.onEnterState();
}
@Override
public String toString() {
return "The mammoth";
}
public void observe() {
this.state.observe();
}
}