用途

  • 通常用于写编译程序。
  • 使用一个实现类来表示一个语言的语法树中一个节点
  • 语法结构树通常由语法分析程序创建。

要素

  • 解释器接口 Expression:包含一个 interpret() 方法用于解释语言表达式。
  • 实现类 TerminalExpression:对应语法树中的终结符表达式
  • 实现类 NonterminalExpression:对应语法树中的非终结符表达式
  • Context 类:上下文,包含解释器之外的一些全局信息。
  • Client 客户端:构建表达式,调用解释操作
  • 示例图:

解释器模式.jpg

优缺点

  • 复杂的语法会使类结构膨胀