• 设计模式之 解释器模式


    解释器模式给定一种语言,并定义该语言的语法表示,然后设计一个解析器来解释语言的语法,这种模式长用于SQL解析、符号处理引擎等。

    正则表达式解释器:

    image

    (1)定义Expression

    public interface Expression {
        public void interpret(Context ctx);
    }

    (2)定义NonterminalExpression类

    public class NonterminalExpression implements Expression {
        private Expression left;
        private Expression right;
        public NonterminalExpression(Expression left,Expression right){
            this.left = left;
            this.right = right;
        }
        @Override
        public void interpret(Context ctx){
            // 递归调用每一个组成部分的 interpret()
            // 在递归调用时指定组成部分的连接方式,即非终结符的功能
        }
    }

    (3)定义 TerminalExpression

    public class TerminalExpression implements Expression{
        @Override
        public void interpret(Context ctx){
            // 终结符表达式的解释操作
        }
    }

    (4)定义Context

    public class Context{
        private HashMap map = new HashMap();
        public void assign(String key,String value){
            // 在环境类中设值
        }
        public String get(String key){
            // 获取存储在环境类中的值
            return "";
        }
    }

    这个呃,,,,没大看懂,但是也抄下来,万一以后看懂了呢

  • 相关阅读:
    SQL Server中使用convert进行日期转换
    杂记
    sqlserver表分区与调优与行列转换
    HttpModule的认识与深入理解及MVC运行机制
    再谈委托
    ASP.NET forms凭据设置和跳转的几种方法
    IOS学习网址
    Activator.CreateInstance 方法 (Type) 的用法
    update多表更新的2种方式
    SQL自定义函数split分隔字符串
  • 原文地址:https://www.cnblogs.com/betterwgo/p/15239513.html
Copyright © 2020-2023  润新知