1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| abstract class State { void doWork() { } }
class Happy extends State { @Override void doWork() { System.out.println("happy"); } }
class Sad extends State { @Override void doWork() { System.out.println("sad"); } }
class Context { private State state;
public void setState(State state) { this.state = state; }
public void work() { state.doWork(); } }
public class StatePatternDemo { public static void main(String[] args) { Context context = new Context(); context.setState(new Happy()); context.work(); context.setState(new Sad()); context.work(); } }
|