解释器模式是一种使用频率相对较低但学习难度较大的设计模式,它主要用于描述如何使用面向对象语言构成一个简单的语言解释器,包含以下四个角色:



1、AbstractExpression(抽象表达式)在抽象表达式中声明了抽象的解释操作,它是所有终结符表达式和非终结表达式的公共父类。


2、TerminalExpression(终结符表达式):TerminalExpression(终结符表达式):终结符表达式是抽象表达式的子类,它实现了与文法中的终结符相关联的解释操作,在句子中的每一个终结符都是该类的一个实例。通常,在一个解释器模式中只有少数几个终结符表达式类,它们的实例可以通过非终结符表达式组成较为复杂的句子。


3、NonterminalExpression(非终结符表达式):非终结符表达式也是抽象表达式的子类,它实现了文法中非终结符的解释操作,由于在非终结符表达式中可以包含终结符表达式,也可以继续包含非终结符表达式,因此其解释操作一般通过递归的方式来完成。


4、Context(环境类):环境类又称为上下文类,它用于存储解释器之外的一些全局信息,通常临时存储了需要解释的语句。