zoukankan      html  css  js  c++  java
  • 状态模式

    public class StatePattern {
    
    
        public static void main(String[] args) {
            Context context=new Context();
            for (int i = 0; i < 10; i++) {
                context.handle();
            }
        }
    }
    public class Context {
    
    
        public boolean isPrveReadPGRead() {
            return prveReadPGRead;
        }
    
        public void setPrveReadPGRead(boolean prveReadPGRead) {
            this.prveReadPGRead = prveReadPGRead;
        }
    
        private boolean prveReadPGRead;
    
        private State state;
    
        //定义环境类的初始状态
        public Context() {
            this.state = new ReadPGState();
        }
    
        //设置新状态
        public void setState(State state) {
            this.state = state;
        }
    
        //读取状态
        public State getState() {
            return (state);
        }
    
        //对请求做处理
        public void handle() {
            state.handle(this);
        }
    }
    public abstract class State {
        public abstract void handle(Context context);
    }
    public class ReadPGState extends State {
        @Override
        public void handle(Context context) {
            //读取pg数据
            System.out.println("都PG数据");
    
            System.out.println("发送mq");
    
            context.setPrveReadPGRead(true);
            context.setState(new ReadQueueState());
        }
    }
    public class ReadQueueState extends State {
        @Override
        public void handle(Context context) {
            //上一次执行是否为pg
            if (context.isPrveReadPGRead()){
                //map中是否包含Lsn
    
                boolean flag=true;
                if (flag){
                    //压入
                    System.out.println("map读取");
                    context.setPrveReadPGRead(false);
                    flag=false;
                }else {
                    context.setState(new ReadPGState());
                }
    
            }else {
                boolean flag=true;
                //队列未满
                if (flag){
                    //全部取出执行
                    System.out.println("连续map读取");
                    context.setPrveReadPGRead(false);
                    flag=false;
                }else {
                    context.setState(new ReadPGState());
                }
            }
        }
    }
  • 相关阅读:
    简单选择排序就是简单~~~
    快速排序的性能和名字一样优秀
    网关Ocelot功能演示完结,久等了~~~
    打个赌,用得最多的冒泡排序肯定少了个关键点
    C7 : 进程环境
    Java Native Interface Specification
    JNI简易开发
    Java Native Interface Specification
    MultilingualSimpleObject
    Java Native Interface Specification
  • 原文地址:https://www.cnblogs.com/zhuyapeng/p/14671248.html
Copyright © 2011-2022 走看看