zoukankan      html  css  js  c++  java
  • java枚举设计出状态机

    原理技术

    package me.ele.marketing.budget.processor.helper;
    
    import org.junit.Test;
    
    import java.nio.ByteBuffer;
    
    /**
     * @author: 谢洪伟
     * 2021/7/2 2:17 下午
     */
    interface Context{
        ByteBuffer buffer();
        State state();
    
        void setState(State state);
    }
    interface State{
        boolean process(Context context);
    }
    
    public enum  Status implements State {
        XML {
            @Override
            public boolean process(Context context) {
                if (context.buffer().remaining() < 16) {
                    return false;
                }
                // header 处理完 进入下一状态
                context.setState(ROOT);
                return true;
            }
        },ROOT {
            @Override
            public boolean process(Context context) {
                if (context.buffer().remaining() < 8) {
                    return false;
                }
                // 处理 root 处理完进入终态
                context.setState(FINISHED);
                return true;
            }
        },FINISHED{
            @Override
            public boolean process(Context context) {
                return false;
            }
        };
        
        @Test
        public void m1() { 
            Context context = null;
            Status.XML.process(context);
        }
    }
    
    
    
  • 相关阅读:
    MySQL命令2
    MySQL命令1
    前端之HTML1
    linux命令之df dh
    python call java jar
    redis-py中的坑
    YARN应用程序的开发步骤
    Yarn的服务库和事件库使用方法
    SSH无密码验证
    在centos 6.5 在virtual box 上 安装增强版工具
  • 原文地址:https://www.cnblogs.com/albertXe/p/14963206.html
Copyright © 2011-2022 走看看