louzhedong / blog

前端基础,深入以及算法数据结构

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

解释器模式

louzhedong opened this issue · comments

解释器模式

解析器是一种按照规定语法进行解析的方案

定义如下:

给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子

优点:拓展性

缺点:引起类膨胀,递归调用,效率低

实现
Java
public class Context {
}

/**
 * 抽象表达式
 **/
public abstract class Expression {
    public abstract Object interpreter(Context context);
}

/**
 * 终结符表达式
 **/
public class TerminalExpression extends Expression{
    @Override
    public Object interpreter(Context context) {
        return null;
    }
}

/**
 * 非终结符表达式
 **/
public class NonTerminalExpression extends Expression{

    public NonTerminalExpression(Expression...expression){}
    @Override
    public Object interpreter(Context context) {
        return null;
    }
}