状态模式

来源:互联网 发布:极客学院python视频 编辑:程序博客网 时间:2024/05/16 19:05

                                              状态模式

             状态模式:  当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

该模式适用于一种情况:某类有很多状态,在不同的状态下,相同的方法执行的逻辑是不同的。这样就能把对象让对象动作的执行更方便,貌似是改变了对象,但是只是改变了对象的状态。

结构图:

 

代码:

package state;  public interface IState {     void call(Context context);     //其他操作 }  public class WaitState implements IState{          @Override     public void call(Context context) {         System.out.println("连接成功,可以通话");         context.setState(new ConnectState());     }  }  public class ConnectState implements IState{      @Override     public void call(Context context) {         System.out.println("over");     }  }


Context类:

package state;public class Context {        private IState state;        public void call(){        state.call(this);    }        public void changeState(IState state){        this.state = state;    }    public IState getState() {        return state;    }    public void setState(IState state) {        this.state = state;    }    }


 

客户端调用:

package state;  public class MainClass {     public static void main(String[] args) {         Context context = new Context();         IState waitState = new WaitState();                  context.setState(waitState);                  context.call();         context.call();     } }


 

 

原创粉丝点击