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

 

正则表达式解释器:

设计模式之 解释器模式

(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 "";
    }
}

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

设计模式之 解释器模式