1 允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。
interface State{ public void doAction(Context context); } class StartState implements State{ @Override public void doAction(Context context) { System.out.println("Ready"); context.setState(this); } @Override public String toString() { return "Go"; } } class Context{ private State state; public Context() { state = null; } public State getState() { return state; } public void setState(State state) { this.state = state; } } public class Test{ public static void main(String[] args){ Context context = new Context(); new StartState().doAction(context); //赋值 System.out.println(context.getState().toString());//取值 } }