一、UML类图
二、代码示例
public class Client {
public static void main(String[] args) {
Context context = new Context();
expression terminalexpression = new Terminalexpression();
expression expression = new NonTerminalexpression(terminalexpression);
expression.interpret(context);
}
}
public interface expression {
void interpret(Context context);
}
public class Terminalexpression implements expression{
@Override
public void interpret(Context context) { }
}
public class NonTerminalexpression implements expression{
private expression expression = null;
public NonTerminalexpression(expression expression) {
this.expression = expression;
}
@Override
public void interpret(Context context) {
expression.interpret(context);
}
}
public class Context {
}
三、角色介绍
- Client(客户端):
客户端角色,程序的调用者。 - expression(抽象表达式):
该角色定义了语法树节点的共同接口。 - Terminalexpression(终结符表达式):
该角色定义了终结符表达式。 - NonTerminalexpression(非终结符表达式):
该角色定义了非终结符表达式。 - Context(上下文):
该角色为解释器进行语法解析提供了必要的信息。