一、作用
定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”是指使用规定格式和语法的代码。解释器模式是一种类行为型模式。
二、特点
它将文法分为终结者和非终结者,挺简单的。
三、例子
//抽象表达式
abstract class Node {
public abstract NumberNode execute();
}
//非终结符表达式
class AddNode extends Node {
private string tag;
private NumberNode left;
private NumberNode right;
public AddNode(NumberNode left,NumberNode right)
{
this.left = left;
this.right = right;
}
public NumberNode execute() {
return new NumberNode(left.getValue()+right.getValue());
}
}
//终结符表达式
class NumberNode extends Node {
private double v;
public NumberNode(double v)
{
this.v = v;
}
public double getValue()
{
return double;
}
public NumberNode execute() {
return this;
}
}