解释器模式

2017-07-31  本文已影响22人  贾里

定义

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

解释器模式.png

角色

代码

上下文Context

class Context {}  

抽象解释器实现类

abstract class Expression {  
    public abstract Object interpreter(Context ctx);  
}  

具体解释器实现类1

class TerminalExpression extends Expression {  
    public Object interpreter(Context ctx){  
        return null;  
    }  
}  

具体解释器实现类2

class NonterminalExpression extends Expression {  
    public NonterminalExpression(Expression...expressions){  
          
    }  
    public Object interpreter(Context ctx){  
        return null;  
    }  
}  

Client

public class Client {  
    public static void main(String[] args){  
        String expression = "";  
        char[] charArray = expression.toCharArray();  
        Context ctx = new Context();  
        Stack<Expression> stack = new Stack<Expression>();  
        for(int i=0;i<charArray.length;i++){  
            //进行语法判断,递归调用  
        }  
        Expression exp = stack.pop();  
        exp.interpreter(ctx);  
    }  
}  
上一篇 下一篇

猜你喜欢

热点阅读