设计模式(6)---状态模式

来源:互联网 发布:华为整体网络解决方案 编辑:程序博客网 时间:2024/05/24 00:49
package design;/** *  * 状态模式:强调状态的自动改变,不需要外部进行干涉。 * 与策略模式区别:不存在外部设置状态方法,状态的改变由内部环境类进行改变* @Title: StateDesign.java * @Package   */public class StateDesign {    /*环境类*/    class ButtonSwitch{        private LightState state;        private boolean lightFlag = false;        public void push(){            if(lightFlag){                state = new OnState();                lightFlag = false;            }else {                state = new OffState();                lightFlag = true;            }            state.push();        }    }    /*状态接口*/    interface LightState{        public void push();    }    class OnState implements LightState{        public void push(){            System.out.println("点灯被点亮了!");        }    }    class OffState implements LightState{        public void push(){            System.out.println("点灯被关闭了!");        }    }    /*客户端*/    public static void main(String[] args) {        ButtonSwitch switch1 = new StateDesign().new ButtonSwitch();        switch1.push();        switch1.push();    }}
0 0
原创粉丝点击