一、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(上下文): 该角色为解释器进行语法解析提供了必要的信息。