解释器模式
给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用文发表示来解释语言中的句子,本质是分离实现,解释执行
虚拟机机制
核心概念
- AbstractExcepression 解释器接口
- TerminalExpression 终结符解释器,实现语法规则中和终结符相关的操作
- NonterminalExpression 非终结符解释器,实现语法规则中非终结符相关的操作
- Context 上下文,包含各个解释器需要的数据或公共功能
优缺点
优点
- 易于实现语法
- 易于扩展新的语法
缺点
- 不适合复杂的语法
使用场景
- 当一个语言需要解释执行,并且可将该语言中的句子表示为一个抽象语法树时