设计模式之状态模式

来源:互联网 发布:tomcat apache nginx 编辑:程序博客网 时间:2024/05/16 08:01


package com.zwy;public class StateTest {/*状态模式:当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其他类. *  * 将与特定状态相关的行为局部化,并且将不同状态的行为分割开来. *  * 注:个人觉得这个对一系列的对象形成链状,如果请求到达一个对象,如果这个请求属于当前 * 状态就进行处理,否则,就将请求后移~直到请求可以被处理 * */public static void main(String[] args) {// TODO Auto-generated method stubContext context = new Context();context.Request();context.Request();context.Request();context.Request();}}abstract class  State {public abstract void Handle( Context context);}class contextStateA extends State {@Overridepublic void Handle(Context context) {context.setState(new contextStateB());}}class contextStateB extends State {@Overridepublic void Handle(Context context) {context.setState(new contextStateA());}}class Context {public State state;public Context(){this.state = new contextStateB();}public State getState() {return state;}public void setState(State state) {this.state = state;System.out.println(state.getClass());}public void Request(){state.Handle(this);}}


0 0
原创粉丝点击