Files
Hui-s-notebook/203-Java/203.1-Java面试/205.19-网络&操作系统/解释器模式.md
2023-09-10 10:50:53 +08:00

764 B

Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.(给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。)

  • AbstractExpression 抽象解释器
  • TerminalExpression 终结符表达式
  • NonterminalExpression 非终结符表达式
  • Context 环境角色

优点

一个简单语法分析工具,扩展性好,修改语法规则只要修改相应的非终结符表达式,扩展语法只要增加非终结符类就可以了

缺点

  • 引起类膨胀
  • 采用递归调用
  • 效率问题

使用场景

  • 重复发生的问题
  • 一个简单语法需要解释的场景