zoukankan      html  css  js  c++  java
  • 23种设计模式之状态模式

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

     

    package designMode.state;
    
    class Context {
        
        private State state;
    
        public Context(State state) {
            this.state = state;
        }
        /**
         * 对请求做处理,并设置下一状态
         */
        public void request(){
            state.handle(this);
        }
        /***************getter&setter****************************/
        public State getState() {
            return state;
        }
        public void setState(State state) {
            this.state = state;
            System.out.println("当前状态:"+state.getClass().getSimpleName());
        }
    }
    package designMode.state;
    
    interface State {
        
        void handle(Context context);
    }
    package designMode.state;
    
    class ConcreteStateA implements State{
    
        @Override
        public void handle(Context context) {
            context.setState(new ConcreteStateB());
        }
    }
    class ConcreteStateB implements State{
        
        @Override
        public void handle(Context context) {
            context.setState(new ConcreteStateA());
        }
    }
    package designMode.state;
    
    class Test {
        public static void main(String[] args) {
            Context c = new Context(new ConcreteStateA());
            
            c.request();
            c.request();
            c.request();
            c.request();
        }
    }
  • 相关阅读:
    自己写的asp日历控件
    处处留心皆学问
    模块化闲谈
    原理……
    DIV和SPAN的区别
    javascript学习感触
    CSS 匹配顺序
    配置闲谈
    找到的一个读取shape数据的代码
    问题和收获
  • 原文地址:https://www.cnblogs.com/lxcmyf/p/7409883.html
Copyright © 2011-2022 走看看