Java设计模式-----State模式

来源:互联网 发布:网络改写的小说 编辑:程序博客网 时间:2024/05/21 11:09
 

源自:http://www.blogjava.net/flustar/archive/2007/12/05/state.html

State模式:

允许一个对象在其状态改变时,改变它的行为。看起来对象似乎修改了它的类。

例子:

public interface State {public void handle(Context ctx);}public class Context {private State _state;public Context(State state) {_state = state;}public void request() {if (_state != null) {_state.handle(this);}}public void ChangeState(State s) {if (_state != null) {_state = null;}_state = s;}}public class ConcreteStateA implements State {public void handle(Context ctx) {System.out.println("handle by ConcreteStateA");if (ctx != null) {ctx.ChangeState(new ConcreteStateB());}}}public class ConcreteStateB implements State {public void handle(Context ctx) {System.out.println("handle by ConcreteStateB");if (ctx != null) {ctx.ChangeState(new ConcreteStateA());}}}public class StateClient {public static void main(String[] args) {State state = new ConcreteStateA();Context context = new Context(state);context.request();context.request();context.request();context.request();}}


 

原创粉丝点击