Java设计模式之行为型模式(状态模式):状态模式允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。
UML图:
代码已经上了注释,很简单,大家领会一下状态模式的思想。
/** * @author Hanlin Wang */ public class StateMode { public static void main(String[] args) { Context.setState(new State("state1")); Context.Handler(); Context.setState(new State("state2")); Context.Handler(); //运行结果 //State 1 mode is running //State 2 mode is running } } //定义状态类 class State{ private String value; public State(String value){ this.value = value; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } } //定义上下文类,监视State类的变化 class Context{ //注入State private static State state; public static State getState() { return state; } public static void setState(State state) { Context.state = state; } public static void Handler(){ String value = state.getValue(); switch (value) { case "state1": React.monitor(); break; case "state2": React.monitor2(); break; default: System.out.println("unknown"); break; } } } //定义事件处理类 class React{ public static void monitor(){ System.out.println("State 1 mode is running"); } public static void monitor2(){ System.out.println("State 2 mode is running"); } }