public class MM { MMState state; public void smile(){ state.smile(); }}public abstract class MMState { abstract void smile();}public class MMHappyState extends MMState { @Override void smile(){}}
FSM例子,线程状态
public class Thread_ { ThreadState_ state; void move(Action a) { state.move(a);}}abstract class ThreadState_ { abstract void move(Action a);}public class NewState extends ThreadState_ { private Thread_ t; @Override void move(Action a) { if ("start".equals(a.msg)) { t.state = new RunningState(t); } }}public class Action { String msg;}