zoukankan      html  css  js  c++  java
  • 设计模式之 解释器模式

    解释器模式给定一种语言,并定义该语言的语法表示,然后设计一个解析器来解释语言的语法,这种模式长用于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 "";
        }
    }

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

  • 相关阅读:
    Prim算法的3个版本
    [转]"undefined reference to" 问题解决方法
    C/C++ 读写 Excel
    Poj 3468
    关于PS中矩形工具的学习
    PS初学习
    java第二天学习。
    Java学习第一天
    二叉树的线索化
    struct files_struct
  • 原文地址:https://www.cnblogs.com/betterwgo/p/15239513.html
Copyright © 2011-2022 走看看